Sincronizar com uma listagem de diretórios do servidor Web

14

Existe uma maneira fácil de manter uma pasta sincronizada com uma listagem de diretório via HTTP?

Editar :

Obrigado pela dica com o wget! Criei um script de shell e o adicionei como um trabalho 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: Como mencionado abaixo, também se pode usar --mirror( -m), que é a abreviação de -r -N.

Lenar Hoyt
fonte
Ainda bem que ajudou. Você poderia aceitar a resposta que melhor lhe ajudou a resolver sua pergunta?
18712 George M

Respostas:

16

wget é uma ótima ferramenta.

Usar 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
fonte
7

Como o rsync, mas use o zsync para obter de um servidor httpd.

gogators
fonte
Não há muita documentação para o zsync na Internet. Seria muito bom se você pudesse elaborar sua resposta. Obrigado.
Behrooz 07/07
3
Behrooz - eu realmente uso lftpe seu mirrorcomando agora.
gogators