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ę, sudo
więc zawsze się nie udaje.
Czy ktoś może mi powiedzieć, dlaczego? Jak mogę to obejść?
wget
przeciwko 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 blah
jest potencjalnym rozwiązaniem?