Sincronizar con un listado de directorio del servidor web

14

¿Hay alguna manera fácil de mantener una carpeta sincronizada con una lista de directorios a través de HTTP?

Editar :

Gracias por el consejo con wget! Creé un script de shell y lo agregué como un trabajo 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

Edición 2: como se menciona a continuación, también se podría usar --mirror( -m), que es la abreviatura de -r -N.

Lenar Hoyt
fuente
Me alegra que haya ayudado. ¿Podrías aceptar la respuesta que crees que mejor te ayudó a resolver tu pregunta?
George M

Respuestas:

16

wget Es una gran herramienta.

Utilizar 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
fuente
7

Como rsync, pero usa zsync para obtener de un servidor httpd.

gogators
fuente
No hay mucha documentación para zsync en Internet. Sería realmente bueno si pudieras elaborar tu respuesta. Gracias.
Behrooz
3
Behrooz: en realidad uso lftpy mirrorahora su comando.
gogators