Jawaban:
Banyak, tetapi saya akan mengutip beberapa dari atas kepala saya.
Bagaimana jika ssh / rsh tidak tersedia di server jauh atau jika mereka rusak dalam hal konfigurasi atau aturan jaringan yang lebih ketat? Menggunakan rsh / ssh masih akan membutuhkan klien (tergantung pada peran pengirim atau penerima), sisi jarak jauh harus melakukan fork biner rsync secara lokal dan membangun koneksi dengan proses rsync yang berjalan di sisi lokal. rsh / ssh hanya akan menyediakan terowongan koneksi; sejauh menyangkut rsync, rsync berkomunikasi dengan proses rsync lainnya melalui pipa.
Mempunyai proses daemon mode rsync akan membuat server menjadi ftp look-like server yang sama di mana beberapa filesystem dapat disediakan melalui modul rsync. Segala sesuatu yang lain bisa dihindari. Katakanlah saya ingin menyediakan hanya / usr / lokal dan / var untuk diunduh dan menolak permintaan klien rsync untuk unduhan lain. Saya dapat menggunakan kebijaksanaan pada level host atau pada level filesystem (modul) untuk memungkinkan pengunggahan atau pengunduhan (hanya baca).
Dapat mengontrol modul akses host / pengguna, otentikasi, otorisasi, logging dan sistem file (struktur) untuk mengunduh / mengunggah secara khusus melalui file konfigurasi. Setiap kali perubahan dilakukan pada file konfigurasi, rsyncd --daemon
tidak perlu dihidupkan ulang atau HUPped
. Dapat juga mengontrol berapa banyak klien yang dapat terhubung ke proses server rsync sekaligus. Ini bagus, karena saya tidak ingin proses server rsyncd saya menghabiskan seluruh host melalui CPU atau operasi I / O berbasis disk.
fungsionalitas chroot dapat disediakan melalui konfigurasi untuk rsyncd dalam mode daemon. Saya dapat menggunakan ini sebagai fitur keamanan yang cukup rapi jika saya ingin menghindari klien yang terhubung ke rsyncd saya untuk semua file / sistem file yang harus diamankan pada host dan tidak boleh memiliki akses luar.
Saya bisa langsung menolak beberapa opsi yang digunakan oleh klien rsync dan tidak menghibur di ujung server, seperti tidak mengizinkan --delete
opsi.
Dapat memiliki opsi untuk menjalankan beberapa perintah / skrip sebelum dan sesudah proses rsync. Contohnya adalah melaporkan dan menyimpan statistik rsync dalam mode pasca-transfer.
Ini adalah beberapa di antaranya, tetapi saya yakin pengguna ahli rsync dapat menjelaskan hal ini.
Saya mengalami masalah saat mencoba menyinkronkan folder besar antara mesin linux dan mesin windows menggunakan cygwin. Setelah menjatuhkan terowongan SSH untuk menggunakan daemon rsync, masalah saya hilang.
Klien tidak perlu mengetahui tata letak sistem file, dll. Dari server yang ia dorong / tarik ke / dari
rsync
menggunakan SSH?
Penggunaan umum untuk rsync adalah untuk mirror arsip publik file. Operator salinan utama tidak ingin mengizinkan akses shell jarak jauh ke arsip, tetapi ingin para sukarelawan yang menjalankan mirror jarak jauh untuk dapat secara efisien mendapatkan salinan lengkap dari arsip. Rsync bekerja sangat baik untuk membuat mirror karena hanya akan mengunduh bit yang diubah, dan jika ada sedikit gangguan pada jaringan, itu tidak akan mengunduh ulang seluruh file besar (gambar cd / dvd).
Protokol bit torrent sebenarnya mungkin merupakan pilihan yang lebih baik untuk ini sekarang, tetapi rsync dirilis bertahun-tahun sebelumnya.
Bahkan sekarang banyak arsip utama masih menggunakan rsync untuk mirror.
Lihat: http://www.debian.org/mirror/ftpmirror
Protokol mirroring yang kami rekomendasikan adalah rsync.
Anda dapat memberikan layanan rsync ke extranet dan mengizinkan sinkronisasi seperti itu tanpa harus mengekspos ssh.
Dalam mode daemon, rsync akan lebih cepat menghitung checksum lokal dan dengan demikian lebih baik jika Anda mengharapkan banyak klien paralel. Dengan perintah mandiri, checksum harus dihitung ulang untuk setiap sesi.
SSH memberikan overhead karena penggunaan enkripsi misalnya. Jadi secara teori Anda harus mendapatkan throughput yang lebih tinggi dengan daemon server rsync.