Próbowałem następującego polecenia:
$ wget -q --tries=10 --timeout=20 --spider http://google.com
(Z tego posta SO . Chcę sprawdzić moje połączenie internetowe w bash.)
Otrzymuję następujące dane wyjściowe:
Spider mode enabled. Check if remote file exists.
--2015-09-28 09:55:50-- http://google.com/
Connecting to 127.0.0.1:3128... connected.
Proxy request sent, awaiting response... 302 Found
Location: http://www.google.de/?gfe_rd=cr&ei=k_IIVreaN-yH8Qfe1Yu4CA [following]
Spider mode enabled. Check if remote file exists.
--2015-09-28 09:55:50-- http://www.google.de/?gfe_rd=cr&ei=k_IIVreaN-yH8Qfe1Yu4CA
Connecting to 127.0.0.1:3128... connected.
Proxy request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Remote file exists and could contain further links,
but recursion is disabled -- not retrieving.
Wydaje się OK, jednak uruchamiając cmd z sudo, otrzymuję to:
Spider mode enabled. Check if remote file exists.
--2015-09-28 09:55:27-- http://google.com/
Resolving google.com (google.com)... failed: Name or service not known.
wget: unable to resolve host address ‘google.com’
Potrzebuję tej linii w skrypcie, do którego dzwonię, sudowięc zawsze się nie udaje.
Czy ktoś może mi powiedzieć, dlaczego? Jak mogę to obejść?
wgetprzeciwko google.com nie wydaje się dobrym sposobem na sprawdzenie, czy połączenie internetowe działa: na przykład możesz mieć połączenie, które zezwala na połączenia HTTP z Google, ale zabrania tego, co skrypt naprawdę chce zrobić ; lub Google może zabronić wgetowi dostępu do ich witryny. Jaki masz faktyczny problem, który Twoim zdaniem sudo wget blahjest potencjalnym rozwiązaniem?