rsync
Bir ana bilgisayardaki verileri başka bir ana bilgisayardaki verilerle senkronize etmek için bir komut dosyası kullanıyorum . Veriler neredeyse 1.2 TB'a katkıda bulunan çok sayıda küçük boyutlu dosyaya sahiptir.
Bu dosyaları senkronize etmek için rsync
aşağıdaki komutu kullanıyorum :
rsync -avzm --stats --human-readable --include-from proj.lst /data/projects REMOTEHOST:/data/
Proj.lst içeriği aşağıdaki gibidir:
+ proj1
+ proj1/*
+ proj1/*/*
+ proj1/*/*/*.tar
+ proj1/*/*/*.pdf
+ proj2
+ proj2/*
+ proj2/*/*
+ proj2/*/*/*.tar
+ proj2/*/*/*.pdf
...
...
...
- *
Test olarak, bu projelerden ikisini (8.5GB veri) aldım ve yukarıdaki komutu uyguladım. Ardışık bir süreç olarak, tamamlanması 14 dakika 58 saniye aracıdır. Yani, 1.2 TB veri için birkaç saat sürecek.
Birden olabilir istiyorsanız rsync
paralel süreçler (kullanarak &
, xargs
ya da parallel
), benim zamandan tasarruf ediyorum.
Aşağıdaki komut ile çalıştı parallel
( cd
kaynak dizine ing sonra ) ve yürütmek için 12 dakika 37 saniye sürdü:
parallel --will-cite -j 5 rsync -avzm --stats --human-readable {} REMOTEHOST:/data/ ::: .
Bu 5 kat daha az zaman almalıydı, ama olmadı. Sanırım, bir yerlerde yanlış gidiyorum.
rsync
Yürütme süresini azaltmak için birden çok işlemi nasıl çalıştırabilirim ?
rsync
s'yi paralelleştirmek ilk önceliğimizdir.
rsync
Paralel çoklu s şimdi birincil odak noktası.