Saya bertanya-tanya apakah mungkin bagi rsync untuk menyalin satu direktori ke beberapa tujuan jarak jauh sekaligus, atau bahkan secara paralel. (tidak perlu, tetapi akan bermanfaat.)
Biasanya, sesuatu seperti yang berikut ini akan berfungsi dengan baik:
$ rsync -Pav /junk user@host1:/backup
$ rsync -Pav /junk user@host2:/backup
$ rsync -Pav /junk user@host3:/backup
Dan jika itu satu-satunya pilihan, saya akan menggunakannya. Namun, / sampah terletak pada drive lambat dengan beberapa file, dan membangun kembali filelist sekitar ~ 12.000 file setiap kali sangat lambat (~ 5 menit) dibandingkan dengan transfer / pembaruan yang sebenarnya. Apakah mungkin untuk melakukan hal seperti ini, untuk mencapai hal yang sama:
$ rsync -Pav /junk user@host1:/backup user@host2:/backup user@host3:/backup
Terima kasih telah melihat!
remote destination is not allowed with --read-batch
-
untuk nama file berarti membaca dari input standar, dan STDIN juga dibaca darifoo
dalam contoh, file lokal.Anda dapat mencoba menggunakan secara bersamaan . Seharusnya lebih cepat dalam membangun daftar file karena menyimpan cache file.
sumber
The
rsync
--batch-mode
multicast mendukung. Jika ini memungkinkan di jaringan Anda, mungkin ada baiknya Anda memeriksanya.sumber
bagaimana dengan mengubah filesystem?
Beberapa waktu lalu, saya mengganti FS multi-terabyte dari ext3 ke XFS. Waktu untuk memindai direktori (dengan sekitar 600.000 file terakhir kali saya periksa) berubah dari 15-17 menit menjadi kurang dari 30 detik!
sumber
Bukan jawaban langsung, tetapi jika Anda menggunakan rsync versi 3+, ia akan mulai mentransfer sebelum menghasilkan seluruh daftar file.
Pilihan lain, masih sangat tidak efisien, adalah menjalankannya sebagai pekerjaan sehingga beberapa dijalankan secara bersamaan.
Juga, saya hanya memikirkan keanehan ini jika Anda tidak keberatan menggunakan tar:
Di mana setiap localhost akan menjadi server yang berbeda tentunya (mengasumsikan login berbasis kunci). Namun, tidak pernah menggunakan di atas sebelumnya.
sumber
Bagaimana menjalankan pekerjaan rsync dari host1, host2, dan host3? Atau, jalankan pekerjaan untuk menyalin ke host1, dan kemudian jalankan di host2 dan host3 untuk mendapatkannya dari host1.
sumber
Solusi yang lebih baik adalah membuat repositori dengan git dan hanya mendorong ke 3 host. Lebih cepat, Anda tidak perlu bagian daftar file dan menghabiskan lebih sedikit sumber daya.
Semoga beruntung,
João Miguel Neves
sumber
.git/
meskipun mendorong ke remote yang sudah memiliki sebagian besar data akan lebih cepat. git bukan pengganti rsync.http
,nfs
danafp
. GitHub adalah situs web yang mengurus pembuatan dan pemeliharaan repositori git untuk Anda, dan menjadikannya publik (kecuali Anda membayar).Dalam mencari jawaban ini sendiri, saya pikir Anda harus membuat batch menggunakan rsync terlebih dahulu dan kemudian mengirimkannya kepada mereka semua, yang akan membuatnya jadi daftar file perlu dikelompokkan hanya satu kali, dan kemudian Anda bisa saja background ketiga rsyncs untuk menjalankannya secara paralel.
sumber
Solusi lain yang mungkin adalah menjalankan banyak proses rsync secara paralel seperti halnya Anda memiliki host, yaitu fork.
sumber