Синхронізуйте лістинг каталогів веб-сервера


14

Чи є простий спосіб синхронізувати папку із списком каталогів через HTTP?

Редагувати :

Дякую за пораду з wget! Я створив скрипт оболонки і додав його як роботу cron:

remote_dirs=( "http://example.com/" "…") # Add your remote HTTP directories here
local_dirs=(  "~/examplecom" "…")

for (( i = 0 ; i < ${#local_dirs[@]} ; i++ )) do
cd "${local_dirs[$i]}"
wget -r -l1 --no-parent -A "*.pdf" -nd -nc ${remote_dirs[$i]}
done

# Explanation:
# -r            to download recursively
# -l1           to include only one directory depth
# --no-parent   to exclude parent directories
# -A "*.pdf"    to accept only .pdf files
# -nd           to prevent wget to create directories for everything
# -N            to make wget to download only new files

Редагувати 2: Як було зазначено нижче, можна також використовувати --mirror( -m), що є скороченням -r -N.


Радий, що це допомогло. Чи можете ви прийняти відповідь, яка вам найкраще допомогла вирішити своє питання?
Джордж М

Відповіді:


16

wget є чудовим інструментом.

Використовуйте wget -m http://somesite.com/directory

-m
--mirror
    Turn on options suitable for mirroring.  This option turns on
    recursion and time-stamping, sets infinite recursion depth and
    keeps FTP directory listings.  It is currently equivalent to 
    -r -N -l inf --no-remove-listing.

7

Як і rsync, але використовуйте zsync для отримання з httpd-сервера.


В Інтернеті не так багато документації для zsync. Було б дуже приємно, якби ви могли детальніше розглянути свою відповідь. Дякую.
Behrooz

3
Behrooz - я фактично використовую lftpі його mirrorкоманду зараз замість цього.
gogators
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.