смысл вывода wget -r

675
deostroll

Это вывод команды дерева в одном каталоге:

. |-- asdf.txt |-- asd.txt |-- fabc | |-- fbca | `-- file1.txt |-- fldr1 |-- fldr2 | `-- index.html |-- fldr3 | |-- cap.txt | `-- f01 `-- out.txt  6 directories, 6 files 

Я запускаю локальный http-сервер в этом каталоге. Далее я запускаю следующую команду:

wget -r -nv --spider --no-parent http://localhost:3000 -o - 

... и получим следующий вывод:

2017-01-02 20:07:24 URL:http://localhost:3000/ [1580] -> "localhost:3000/index.html" [1] http://localhost:3000/robots.txt: 2017-01-02 20:07:24 ERROR 404: Not Found. 2017-01-02 20:07:24 URL:http://localhost:3000/fabc/ [897] -> "localhost:3000/fabc/index.html" [1] 2017-01-02 20:07:24 URL:http://localhost:3000/fldr1/ [536] -> "localhost:3000/fldr1/index.html" [1] 2017-01-02 20:07:24 URL:http://localhost:3000/fldr2/ [0/0] -> "localhost:3000/fldr2/index.html" [1] 2017-01-02 20:07:24 URL:http://localhost:3000/fldr3/ [896] -> "localhost:3000/fldr3/index.html" [1] 2017-01-02 20:07:24 URL: http://localhost:3000/asd.txt 200 OK unlink: No such file or directory 2017-01-02 20:07:24 URL: http://localhost:3000/asdf.txt 200 OK unlink: No such file or directory 2017-01-02 20:07:24 URL: http://localhost:3000/out.txt 200 OK unlink: No such file or directory 2017-01-02 20:07:24 URL:http://localhost:3000/fabc/fbca/ [548] -> "localhost:3000/fabc/fbca/index.html" [1] 2017-01-02 20:07:24 URL: http://localhost:3000/fabc/file1.txt 200 OK unlink: No such file or directory 2017-01-02 20:07:24 URL:http://localhost:3000/fldr3/f01/ [548] -> "localhost:3000/fldr3/f01/index.html" [1] 2017-01-02 20:07:24 URL: http://localhost:3000/fldr3/cap.txt 200 OK unlink: No such file or directory Found no broken links.  FINISHED --2017-01-02 20:07:24-- Total wall clock time: 0.3s Downloaded: 7 files, 4.9K in 0s (43.4 MB/s) 
  1. Wget написан, чтобы всегда искать index.html? Можем ли мы отключить это?
  2. Что это за числа, такие как 1580, 536, 0/0 и т. Д.?
  3. Почему это говорит unlink: No such file or directory?
0

1 ответ на вопрос

2
Marek Rost
  1. Вы можете попытаться пропустить файлы с --rejectопцией (также принимает символы подстановки):

    wget --reject index.html

Однако вы не хотите этого делать. При использовании wget с -rкаким-то образом ему нужно получить список файлов внутри каталога. Таким образом, wget запрашивает файл index.html и анализирует содержимое в надежде найти пути к другим файлам в этом каталоге. Если в папке нет файла index.html, веб-сервер обычно генерирует его для wget - этот файл будет содержать список каталогов. Создание этого файла списка должно быть разрешено на веб-сервере - в противном случае wget получит ответ HTTP 404 и потерпит неудачу при рекурсивной загрузке.

  1. Это размер файла в байтах.
  2. Это означает, что файл не может быть удален (возможно, потому что он не был создан в первую очередь). У вас есть разрешение на запись в каталог, в который вы загружаете с помощью wget?

Изменить: После тестирования загрузки wget с, --spiderи --recursive я воспроизвел вашу ошибку unlink. Похоже, что wget использует тип содержимого ответа, чтобы определить, может ли файл содержать ссылки на другие ресурсы. Если проверка типа контента не пройдена и файл не загружен, wget все равно попытается удалить временный файл, как если бы он был загружен (это очевидно при повторном запуске wget с помощью --debug. Это будет четко указано Removing file due to --spider in recursive_retrieve():). Я полагаю, вы нашли ошибку в wget.

Хорошо, тогда что такое `0 / 0`? (В ответ на ответ 2) deostroll 7 лет назад 0
Похоже, ошибка при загрузке файла - например, получение HTTP 200 OK с веб-сервера, когда файл не предоставлен (из-за неправильных разрешений, неправильной конфигурации ... и т. Д.). Wget загрузил содержимое файла или файл пуст? Боюсь, никто не может сказать вам причину только из нулевого размера файла. Вот кто-то сталкивается с подобной проблемой: http://unix.stackexchange.com/q/91785 (ответы предлагают включить параметр отладки wget). Marek Rost 7 лет назад 0
Я запустил его с параметром --spider ... теперь это что-нибудь значит? deostroll 7 лет назад 0
Паук просто означает «не загружать файлы». С рекурсивным это изменится на «временно загружать файлы, которые могут содержать ссылки на другие ресурсы». Как указано в обновленном ответе, если файл должен быть загружен, определяется его тип содержимого. Marek Rost 7 лет назад 1

Похожие вопросы