Web Sunucusunun Dizin Listesiyle Eşitleme


14

Bir klasörü HTTP üzerinden bir dizin listesiyle senkronize etmenin kolay bir yolu var mı?

Düzenle :

Wget ile bahşiş için teşekkürler! Bir kabuk komut dosyası oluşturdum ve bir cron işi olarak ekledim:

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

Düzenleme 2: Aşağıda belirtildiği gibi, biri de kısayol olan --mirror( -m) öğesini kullanabilir -r -N.


Yardımcı oldu sevindim. Sorunuzu çözmenize en iyi yardımcı olduğunu düşündüğünüz yanıtı kabul edebilir misiniz?
George M

Yanıtlar:


16

wget harika bir araçtır.

kullanım 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 gibi, ancak httpd sunucusundan almak için zsync kullanın.


İnternette zsync için çok fazla belge yok. Cevabınızı ayrıntılı olarak açıklamak gerçekten çok hoş olurdu. Teşekkür ederim.
Behrooz

3
Behrooz - Aslında şimdi lftponun mirrorkomutunu kullanıyorum.
Gogators
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.