Чи можу я використовувати wget для перевірки, але не для завантаження


Відповіді:


115

Для цього існує параметр командного рядка --spider. У цьому режимі wget не завантажує файли, і його повернене значення дорівнює нулю, якщо ресурс був знайдений, і ненульовому, якщо його не було знайдено. Спробуйте це (у вашій улюбленій оболонці):

wget -q --spider address
echo $?

Або якщо ви хочете отримати повний вихід, залиште -qвимкнене, так просто wget --spider address. -nvпоказує певний результат, але не такий, як за замовчуванням.


29
Зверніть увагу, що wget --spiderнадсилається запит HEAD, а не GET.
hammar

3
@hammer, я не впевнений, яку версію ти міг використовувати, але з 1.14 wget --spiderробить HEAD і, якщо вдається, переходить з GET до тієї самої URL-адреси. Таким чином, з рекурсивною опцією це корисно для побудови кешу для веб-сайту на стороні сервера.
danorton,

26

Якщо ви хочете перевірити тихо через $? без клопоту про grep'ing виводу wget ви можете використовувати:

wget -q "http://blah.meh.com/my/path" -O /dev/null

Працює навіть з URL-адресами лише із шляхом, але має той недолік, що щось дійсно завантажено, тому це не рекомендується під час перевірки великих файлів на наявність.


--spiderАргумент має встановити код повернення. Але, можливо, це тому, що через 4 роки 3 місяці та 7 днів павук став розумнішим.
Джон Ред

Не перевіряв нещодавно, але не здивував би мене, якщо б вони тим часом це виправили.
3ronco

16

Ви можете використовувати наступну опцію, щоб перевірити наявність файлів:

wget --delete-after URL

13

Так легко.

wget --spider www.bluespark.co.nz

Це дасть вам

Resolving www.bluespark.co.nz... 210.48.79.121
Connecting to www.bluespark.co.nz[210.48.79.121]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
200 OK

-3

Якщо ви знаходитесь у каталозі, де лише root має доступ для запису в систему. Тоді ви можете безпосередньо використовувати wget www.example.com/wget-testстандартний обліковий запис користувача. Отже, це вдарить по URL-адресі, але через відсутність файлу дозволу на запис не буде збережено .. Цей метод для мене працює нормально, оскільки я використовую цей метод для cronjob. Дякую.

sthx


1
Не слід використовувати ... Ризиковано, оскільки дозволи системного адміністратора можуть змінити та порушити ваш намір і марні, коли є вбудований прапор, --spiderякий робить саме те, що запитує OP
Luke Savefrogs
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.