[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:57894] Re: How bash script can know wget result ? again



Tanimura@Osaka です。

綾小路さん
曖昧な質問にもかかわらず、実例を挙げての丁寧なご説明を頂き感謝しています。
同様の趣旨のご指摘を他にも頂き、質問の至らなさに恥じ入っています。

Net音痴の私は、wgetの --spider option を最近知り、wget -h の記述
"wget --spider means wget will not download, just check that they are there."
だけを見て、「wgetは URLが、存在していれば (正しければ) 0 を、
存在しなければ (正しくなければ) 1 以上を返す(のだろう)」 と勝手読みを していました。

なお、ご指摘頂いた各点を参考にして、curl を使った test は、現在順調に進 んでいます。
many thanks!

-- Tanimura@Osaka

On 15/12/04 21:30, AYANOKOUZI, Ryuunosuke wrote:
綾小路です。

ただ、頂いた処方の副作用 ("ただし、このやり方では実際にファイルをダウンロード
できるか否かまではわかりません。") がどのように表れるのか、少し心配です。
副作用は server や site の不具合以外にもありうるのでしょうか?
存在確認に成功してダウンロードに失敗するケースはいくつか考えられます。
取り急ぎ思いついたものだけ (すべてのケースを考慮したものではありません) を列挙します。

また、「<URL/file> の正しさを check したい」ということでしたが、
私はまだ「正しさ」(期待する結果) の定義を十分理解できていないので、
以下に挙げた例を「副作用」(期待しない結果) と判断すべきかはわかりません。

CASE1.

対象のファイル及びそれが配置されたディレクトリに設定されたパーミッションに依存して、
存在確認に成功してダウンロードに失敗する場合が考えられます。
以下は、実行権限のあるディレクトリ内にある読み込み権限のないファイル
に対する存在確認とダウンロードの実行例です。

$ curl --head 'ftp://localhost/executable_dir/unreadable_file'
Last-Modified: ***, ** *** **** **:**:** ***
Content-Length: 10240
Accept-ranges: bytes
$ echo $?
0
$ curl --output /dev/null 'ftp://localhost/executable_dir/unreadable_file'
   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                  Dload  Upload   Total   Spent    Left  Speed
   0 10240    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0
curl: (78) RETR response: 550
$ echo $?
78

この状況は wget でも変わりません。

$ wget --quiet --spider 'ftp://localhost/executable_dir/unreadable_file'
$ echo $?
0
$ wget --quiet --output-document /dev/null 'ftp://localhost/executable_dir/unreadable_file'
$ echo $?
8

CASE2.

また、クライアント側でディスク領域が不足していると、
存在確認は成功してダウンロードは失敗します。

$ curl --head 'ftp://ftp.gnu.org/gnu/binutils/binutils-2.25.1.tar.bz2'
Last-Modified: Tue, 21 Jul 2015 15:00:09 GMT
Content-Length: 24163561
Accept-ranges: bytes
$ echo $?
0
$ curl --output binutils-2.25.1.tar.bz2 'ftp://ftp.gnu.org/gnu/binutils/binutils-2.25.1.tar.bz2'
   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                  Dload  Upload   Total   Spent    Left  Speed
   0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0curl: (23) Failed writing body (2648 != 5792)
$ echo $?
23

この状況は wget でも変わりません。

$ wget --quiet --spider 'ftp://ftp.gnu.org/gnu/binutils/binutils-2.25.1.tar.bz2'
$ echo $?
0
$ wget --quiet --output-document binutils-2.25.1.tar.bz2 'ftp://ftp.gnu.org/gnu/binutils/binutils-2.25.1.tar.bz2'
$ echo $?
3

綾小路龍之介
--
AYANOKOUZI, Ryuunosuke <i38w7i3@xxxxxxxxxxx>