Mit einer Verzeichnisliste des Webservers synchronisieren


13

Gibt es eine einfache Möglichkeit, einen Ordner über HTTP mit einer Verzeichnisliste zu synchronisieren?

Bearbeiten :

Danke für den Tipp mit wget! Ich habe ein Shell-Skript erstellt und es als Cron-Job hinzugefügt:

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

Edit 2: Wie unten erwähnt, könnte man auch --mirror( -m) verwenden, was die Abkürzung für ist -r -N.


Ich bin froh, dass es geholfen hat. Können Sie die Antwort akzeptieren, die Ihnen bei der Lösung Ihrer Frage am besten geholfen hat?
George M

Antworten:


15

wget ist ein großartiges Werkzeug.

Verwenden 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

Wie rsync, aber mit zsync von einem httpd-Server abrufen .


Es gibt nicht viel Dokumentation für zsync im Internet. Es wäre sehr schön, wenn Sie Ihre Antwort erläutern könnten. Vielen Dank.
Behrooz,

3
Behrooz - Ich benutze jetzt stattdessen lftpund seinen mirrorBefehl.
Gogators
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.