Synchronisation avec une liste de répertoires du serveur Web

14

Existe-t-il un moyen simple de conserver un dossier synchronisé avec une liste de répertoires via HTTP?

Modifier :

Merci pour l'astuce avec wget! J'ai créé un script shell et l'ai ajouté en tant que tâche 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

Edit 2: Comme mentionné ci-dessous, on pourrait également utiliser --mirror( -m), qui est le raccourci pour -r -N.

Lenar Hoyt
la source
Heureux que cela ait aidé. Pourriez-vous accepter la réponse qui, selon vous, vous a le mieux aidé à résoudre votre question?
George M

Réponses:

16

wget est un excellent outil.

Utilisation 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.
George M
la source
7

Comme rsync, mais utilisez zsync pour obtenir à partir d'un serveur httpd.

gogators
la source
Il n'y a pas beaucoup de documentation pour zsync sur Internet. Ce serait vraiment bien si vous pouviez développer votre réponse. Je vous remercie.
Behrooz
3
Behrooz - J'utilise en fait lftpet sa mirrorcommande maintenant à la place.
gogators