Назад | Перейти на главную страницу

Проблемы с wget AWS ubuntu apache2

Я пытаюсь использовать wget для загрузки с моего сервера AWS ubuntu с apache2. Я пробовал несколько разных вариантов, но все они приводят либо к файлу по имени каталога, либо к файлу index.html.

В каталоге 3 картинки и видео в формате ogg.

Это wget, который я использую:

wget -N -np http://domainorIP/dir/dir2/dirtodownload/

По умолчанию, wget загружает только URL-адрес, который вы ему даете, а не ресурсы, на которые есть ссылки со страницы HTML. Чтобы перейти по этим ссылкам, вам понадобится -r (или --recursive) вариант.

Также есть --page-requisites опция, которая загружает любые ресурсы, необходимые для отображения страницы, которую вы ей предоставляете, например встроенные изображения и таблицы стилей.

Также есть «сгруппированные» варианты, такие как --mirror который включает в себя -r наряду с несколькими другими параметрами, полезными для зеркалирования.

Страница руководства огромна, потому что wget имеет много функций. Раздел о Recursive Retrieval Options стоит потратить время на чтение.

Я никогда не добивался успеха curl или wget для загрузки файлов, которые обслуживаются с сервера Apache, где indexing directories включен. Думаю, это и твоя проблема. Когда вы просматриваете каталоги, они выглядят следующим образом:

В Apache они включены, например, так:

<Directory /var/www/domain.com/pdfs>
Options Indexes FollowSymLinks
</Directory>

Используя оболочку, вы можете получить список файлов, а затем загрузить их по одному с помощью такой команды:

% URL="http://www.lamolabs.org/blog/wp-content/uploads/2012/10/"
% curl -s $URL | \
     grep "href" | \
     grep -v "C=D;O=A" | \
     sed "s#^.*href=\"#$URL#" | \
     sed 's/">.*$//' | \
     xargs wget

Разбивая это:

 - URL="..."                - is the URL I want to download files from
 - curl -s $URL             - get's the contents of the index.html generated by Apache
 - grep "href"              - get lines that contain only href
 - grep -v "C=D;O=A"        - eliminate the header bar line generated by Apache
 - sed "s#^.*href=\"#$URL#" - replace .*href=" lines with URL
 - sed 's/">.*$//'          - remove trailing characters >.*$
 - xargs wget               - download each file using wget

Вы можете запустить это как одну команду:

url="http://www.lamolabs.org/blog/wp-content/uploads/2012/10/"; curl -s $url | grep "href" | grep -v "C=D;O=A" | sed "s#^.*href=\"#$url#" | sed 's/">.*$//' | xargs wget 

Его запуск приводит к загрузке следующих файлов:

% ls -l
total 1652
-rw-rw-r-- 1 saml saml 1351400 Oct  8 23:35 Anatomy-of-the-Linux-file-system.mht
-rw-rw-r-- 1 saml saml     485 Oct 11 00:42 eratosthenes_prime_sieve.pl_.txt
-rw-rw-r-- 1 saml saml   27191 Oct  3 21:42 Selection_005-150x150.png
-rw-rw-r-- 1 saml saml   24202 Oct  3 21:42 Selection_005.png
-rw-rw-r-- 1 saml saml   27141 Oct  3 21:42 Selection_006-150x150.png
-rw-rw-r-- 1 saml saml   24906 Oct  3 21:42 Selection_006.png
-rw-rw-r-- 1 saml saml   25783 Oct  3 22:17 Selection_007-150x150.png
-rw-rw-r-- 1 saml saml  111915 Oct  3 22:17 Selection_007-650x180.png
-rw-rw-r-- 1 saml saml   48109 Oct  4 09:57 Selection_007-e1349359020755.png
-rw-rw-r-- 1 saml saml   29336 Oct  3 22:17 Selection_007.png

Загрузите браузер CLI и загрузите нужные файлы, вы можете использовать ELinks или W3M

apt-get install elinks w3m