Jawaban:
Saya pikir perbedaan besar adalah bahwa jika Anda menggunakan rsyncd
di ujung server, bukannya rsync
selesai ssh
, server sudah tahu apa yang dimilikinya, jadi membangun daftar file untuk menentukan apa yang perlu ditransfer jauh lebih sederhana. Tidak akan ada bedanya jika Anda hanya mendorong beberapa file, tetapi jika Anda membuat, misalnya, CPAN tersedia melalui rsync, Anda tidak ingin harus membuat daftar file di sisi sumber setiap waktu.
Ini adalah pertanyaan lama, tetapi ada alasan lain yang sangat valid untuk digunakan rsync
dalam mode daemon versus over ssh:
Saya memiliki satu NAS 10 TB yang didukung hingga NAS 10 TB lainnya, dan overhead enkripsi untuk hanya terowongan SSH adalah faktor pembatas untuk transfer. Kedua NAS cukup bertenaga 1,8 Ghz Intel Atom, dan bahkan dengan opsi crypto yang lebih mudah untuk ssh (mis. ssh -c arcfour
Diteruskan sebagai panggilan ssh ke rsync), overhead enkripsi masih menghasilkan 200-300 Mbps terbaik, pada jaringan ethernet gigabit.
Menggunakan daemon rsync di satu sisi menghapus overhead crypto, dan mencapai transfer> 800 Mbps untuk file besar yang bersebelahan.
ssh -c arcfour
koneksi yang saya gunakan.
Saya tidak berpikir membandingkan menjalankan rsyncd ke rsync lebih dari SSH masuk akal. Mereka umumnya digunakan untuk hal-hal yang sama sekali berbeda.
rsync over ssh biasanya digunakan untuk backup, atau menyinkronkan server melalui internet. rsyncd biasanya digunakan untuk hal-hal seperti mirror perangkat lunak, jadi lebih masuk akal untuk membandingkan rsyncd dengan cermin HTTP atau FTP biasa atau bahkan bittorrent.
Ada juga perangkat lunak seperti zsync, yang memungkinkan Anda mendapatkan banyak manfaat rsync saat masih menggunakan server HTTP standar
Fungsi rsyncd
untuk dijalankan pada server dan menanggapi rsync
permintaan (jarak jauh) .
(ketika kita mengatakan rsyncd
kita berarti rsync
menjalankan sebagai daemon, dan ketika kita mengatakan 'jarak jauh', kita berarti jauh dari sudut pandang mesin yang berjalan rsyncd
)
Keduanya akan menggunakan ssh untuk berbicara satu sama lain dengan aman.
Ini sebenarnya bukan pertanyaan tentang menggunakan satu atau yang lain, meskipun jika rsync
digunakan untuk menyalin file dan direktori pada mesin yang sama , saya tidak berpikir itu perlu dijalankan sebagai daemon.
Saya pikir rsync
halaman manual menjelaskan ini.
rsyncd (rsyncd with daemon) digunakan oleh port default 873.
Ini akan menggunakan protokol rsync asli, tetapi tidak mengenkripsi apa pun. Ini dimaksudkan hanya untuk jaringan lokal atau tepercaya.
Jika Anda menginginkan keamanan, selalu Anda harus menggunakan rsync atau rsyncd melalui SSH, semua transfer data Anda akan dimasukkan dengan protokol ssh.