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

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



Tanimura@Osaka です。

綾小路さん、有難うございます。

適格な診断 (プロトコルの相違)と 有効な処方 (curl --head) を頂き感謝しています。

私の Jessie には curl は無かったので、aptitude install をして(PHP, SQL などは
手を付けず)、現在試運転中です。
gcc, binutils, newlib, gmp, mpfr, mpc ... では結果良好です。

ただ、頂いた処方の副作用 ("ただし、このやり方では実際にファイルをダウンロード
できるか否かまではわかりません。") がどのように表れるのか、少し心配です。
副作用は server や site の不具合以外にもありうるのでしょうか?

-- Tanimura@Osaka

On 15/12/03 1:37, AYANOKOUZI, Ryuunosuke wrote:
綾小路です。

'ftp://sources.redhat.com/pub/newlib/newlib-1.19.0.tar.gz'
を

1) HEAD -d
2) HEAD
3) wget --spider
4) wget

で試みたところ、以下のように、'HEAD -d' と 'wget --spider' では
異なる結果になりました。
存在するファイルへのリクエストなのに、
'HEAD -d' を使うと exit code != 0 となる点が問題ということですね。
これは 'HEAD -d' がリクエストに HTTP プロトコルを使っているのに対して、
'wget --spider' は FTP プロトコルを使っているからではないでしょうか。
FTP サーバに対して HTTP でリクエストを出しているため、
FTP サーバから応答がなく、タイムアウトで終了しているように見えます。

down load する前に、<URL/file> の正しさを check したいのですが、
良き方法があればご教示ください。
「<URL/file> の正しさを check したい」が
「<URL/file> が本当に存在するか確認したい」という意味ならば、
'curl --head' [1] を使ってみるのはいかがでしょうか。
これを使うことで、ファイルをダウンロードすることなく、
ファイルの存在確認をすることができます。
ただし、このやり方では実際にファイルをダウンロードできるか否かまではわかりません。

[1] http://curl.haxx.se/docs/manpage.html

CASE1. 存在するファイルへのリクエストは exit code = 0;

$ curl --head 'ftp://sources.redhat.com/pub/newlib/newlib-1.19.0.tar.gz'
Last-Modified: Fri, 17 Dec 2010 22:28:39 GMT
Content-Length: 14323667
Accept-ranges: bytes
$ echo $?
0
$ 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
$ touch hoge
$ curl --head 'file://hoge'
Content-Length: 0
Accept-ranges: bytes
Last-Modified: ***, ** *** *** **:**:** ***
$ echo $?
0

CASE2. 存在しないファイルへのリクエストは exit code != 0;

$ curl --head 'ftp://ftp.gnu.org/gnu/binutils/binutils-x.xx.x..tar.bz2'
curl: (19) Given file does not exist
$ echo $?
19
$ rm hoge
$ curl --head 'file://hoge'
curl: (37) Couldn't open file hoge
$ echo $?
37

$ curl --version
curl 7.38.0 (x86_64-pc-linux-gnu) libcurl/7.38.0 OpenSSL/1.0.1k zlib/1.2.8 libidn/1.29 libssh2/1.4.3 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp scp sftp smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile GSS-API SPNEGO NTLM NTLM_WB SSL libz TLS-SRP

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