Pertanyaan Mode kegagalan untuk rsyncing simultan antara dua komputer


Bagaimana rsync menangani kemungkinan interferensi dengan rsync lain pada mesin yang sama? Saya telah membaca semua dokumentasi yang dapat saya temukan tetapi tidak melihat penyebutan ini. Saya akan menjalankan beberapa eksperimen tetapi saya khawatir bahwa mereka mungkin tidak mengungkapkan sepenuhnya masalah yang mungkin saya hadapi.

Ini skenarionya. Saya ingin menjaga dua mesin tetap sinkron. Setiap monitor mesin untuk perubahan file dalam direktori, dan ketika mendeteksi beberapa, ia menjalankan rsync untuk menyinkronkan direktori tersebut ke mesin remote. Biasanya, hanya satu mesin pada satu waktu akan memiliki perubahan file yang terjadi, tetapi apa yang akan terjadi jika file yang sama berubah pada kedua mesin pada saat yang sama, mungkin untuk sesuatu yang berbeda? Akankah rsync mendeteksi bahwa ia sedang berjalan di kedua mesin dan menangani situasi dengan tepat (mis. Hanya menyinkronkan file yang lebih baru) atau dapatkah itu salah secara mengerikan sehingga mengakibatkan korupsi atau perilaku yang tidak tentu?

Akankah hasilnya berbeda jika ada server rsync di setiap mesin dibandingkan menggunakan ssh? Saya belum melihat penjelasan yang baik tentang manfaat menggunakan satu metode dibandingkan yang lain.


2
2017-07-13 21:45


asal




Jawaban:


Singkatnya - dua rsync proses akan tidak tahu apa pun tentang satu sama lain.

Saat run-time, rsync hanya akan melakukan tindakan yang sesuai dengan keadaan saat ini dari sumber dan file tujuan dan argumen / bendera yang dilewati (yaitu jika Anda menetapkan --dry-run, --delete atau bendera yang mengubah perilaku lainnya).

Inilah yang membuat rsync (dan juga alat sinkronisasi uni-directional lainnya) sangat berbahaya di lingkungan tertentu, dan juga mengapa solusi seperti Windows Server's DFS dan sistem file bergerombol Linux seperti GlusterFS dan GFS atau alat replikasi tingkat blok seperti DRBD lebih berlaku jika Anda mencari sinkronisasi bi-directional yang benar.

Anda mungkin menemukan bendera ini berguna (dari rsync halaman manual), tetapi Anda mungkin mengalami perilaku tak terduga / tak terduga, terutama jika Anda menggabungkannya --delete:

-u, --update                skip files that are newer on the receiver

3
2017-07-13 21:58