Apa perlunya server rsync dalam mode daemon

29

Saya tidak mengerti perlunya server rsync dalam mode daemon. Apa manfaatnya jika saya bisa menggunakan rsync dengan SSH atau telnet?

Hanan N.
sumber

Jawaban:

22

Banyak, tetapi saya akan mengutip beberapa dari atas kepala saya.

  1. 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.

  2. 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).

  3. 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 --daemontidak 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.

  4. 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.

  5. Saya bisa langsung menolak beberapa opsi yang digunakan oleh klien rsync dan tidak menghibur di ujung server, seperti tidak mengizinkan --deleteopsi.

  6. 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.

Nikhil Mulley
sumber
8
  1. 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.

  2. Klien tidak perlu mengetahui tata letak sistem file, dll. Dari server yang ia dorong / tarik ke / dari

Tim
sumber
1
+1 untuk # 2. Situasi seperti jaringan cermin menciptakan ketidakpastian karena sifatnya yang sangat terdistribusi, jadi senang bisa memisahkan keputusan lokal yang tidak relevan dari pengoperasian jaringan.
Warren Young
@tim, apa masalah yang Anda alami dengan Cygwin dan rsyncmenggunakan SSH?
Daniel Sokolowski
3

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.

Sakit kepala
sumber
Lihat juga zsync untuk aplikasi semacam ini - ini seperti rsync tetapi melakukan semua kerja keras pada klien, bukan pada server. Server hanya perlu daftar hash yang sudah dihitung sebelumnya.
rjmunro
1

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.

Nils
sumber
0

SSH memberikan overhead karena penggunaan enkripsi misalnya. Jadi secara teori Anda harus mendapatkan throughput yang lebih tinggi dengan daemon server rsync.

Folkert van Heusden
sumber
2
Saya tidak akan menurunkan suara Anda untuk ini, karena ya, memang ada jaringan teoritis di mana masalah overhead enkripsi. Saya pikir Anda akan menemukan jika Anda mengukurnya, meskipun, itu tidak signifikan pada jaringan nyata, kecuali mungkin untuk tahap negosiasi kunci awal. Setelah paket mengalir, waktu enkripsi ditelan oleh latensi jaringan.
Warren Young
@ WarrenYoung Mesin tua yang meng-hosting server rsync publik pada pipa besar.
Gilles 'SANGAT berhenti menjadi jahat'
1
@Gilles - Mesin yang cukup lambat sehingga tidak bisa mengenkripsi cukup cepat untuk menjaga pipa penuh mungkin mengalami masalah bandwidth disk terlebih dahulu. Intinya, saya ingin melihat pengukuran. Dan sebelum seseorang memposting pengukuran, pastikan untuk mencoba menggandakan ukuran transfer dan memastikan efek yang Anda ukur juga berlipat ganda. Jika tidak, Anda menghitung negosiasi kunci, yang akan saya berikan di muka membutuhkan waktu yang terukur.
Warren Young
Melakukan paralelisasi rsync akan menjadi opsi yang lebih baik dengan paralel GNU dalam kasus itu.
Nikhil Mulley