rsync melalui VPN: sisi mana sumber kebenaran?
Terowong memberi anda laluan, bukan dasar penggabungan. Pilih salinan berwibawa, pratonton salinan sehala, kemudian putuskan secara berasingan sama ada pemadaman turut bergerak.
Dua pelayan, satu VPN, satu direktori yang mesti wujud di kedua-dua tempat, dan satu arahan yang mudah dijalankan tetapi sukar dibatalkan. Sebelum menaipnya, putuskan salinan mana yang berwibawa, kerana setiap soalan rsync berikutnya bergantung pada jawapan itu. Replika sehala, folder kerja kongsi dan arkib berversi memerlukan peraturan berbeza untuk suntingan dan pemadaman. Terowong menyediakan laluan dan tidak mempunyai pendapat tentang mana-mana daripadanya.
Putuskan salinan mana yang menang sebelum menaip arahan
Tulis arah dalam satu ayat, termasuk nama hos dan laluan pada setiap sisi, dan dapatkan persetujuan daripada pemilik data. Dalam panduan ini sumber ialah /srv/publish/ dan destinasi ialah akaun pada fileserver.example yang hanya boleh menulis dalam /srv/mirror/.
Sahkan fakta pengangkutan sebelum penyalinan: kunci hos SSH telah disahkan, akaun destinasi boleh menulis dalam kawasan replika dan tidak di tempat lain, dan kedua-dua hos mempunyai versi rsync yang serasi. Prasyarat ini menghalang kesilapan perancangan kecil menjadi insiden kebenaran. Ia juga memberitahu anda akaun mana yang akan muncul dalam log destinasi apabila sesuatu berlaku salah.
Pratonton salinan dan baca senarai terperinci
Jalankan salinan dahulu dengan bendera pratonton dan simpan output. Perubahan terperinci memberitahu anda apa yang akan berlaku pada setiap laluan, yang jauh lebih berguna daripada ringkasan selepas selesai. Simpan output dalam rekod perubahan supaya larian seterusnya mempunyai sesuatu untuk dibandingkan.
rsync -rt --dry-run --itemize-changes -e ssh -- /srv/publish/ [email protected]:/srv/mirror/
Garis condong di hujung penting. Di sisi sumber ia bermaksud kandungan direktori itu, manakala meninggalkannya menambah satu tahap direktori bernama sempena sumber. Manual rsync mendokumentasikan kedua-dua bentuk bersama bendera pemeliharaan metadata, dan set pilihan yang anda perlukan bergantung pada data, bukan pada kebiasaan.
Baca setiap baris berbanding destinasi yang anda maksudkan. Membuang bendera pratonton menjalankan penyalinan dan boleh menimpa fail, dan tanpa pilihan pemadaman fail tambahan yang sudah ada di destinasi kekal di tempatnya. Ini hanya lalai selamat jika anda benar-benar telah memutuskan bahawa fail lapuk yang tertinggal boleh diterima. Jika jawapannya tidak, keputusan pemadaman di bawah inilah yang perlu dibuat, bukan bendera tambahan yang ditaburkan ke dalam arahan ini.
Kemudian putuskan sama ada pemadaman turut bergerak
Menjadikan destinasi cermin ialah keputusan kedua, bukan penghalusan yang pertama. Pratonton secara berasingan, dengan bendera pemadaman ditambah dan tiada apa lagi diubah, supaya perbezaan dalam senarai sepenuhnya milik keputusan itu.
rsync -rt --delete --dry-run --itemize-changes -e ssh -- /srv/publish/ [email protected]:/srv/mirror/
Pemadaman membuang fail berlebihan di sisi penerima dalam skop yang disegerakkan, itulah sebabnya laluan sumber yang salah, direktori yang tidak dilekapkan atau penapis yang mengecualikan lebih daripada yang dimaksudkan boleh membuat larian merosakkan kelihatan seperti cermin bersih. Senarai pratonton ialah satu-satunya tempat perbezaan itu kelihatan sebelum menjadi mahal. Simpan salinan pemulihan bebas di tempat data membenarkannya, dan ingat bahawa cermin menghasilkan semula pemadaman tidak sengaja dengan setia dan bukan memelihara sejarah.
Pratonton juga tidak mengunci apa-apa. Orang menyunting fail antara percubaan dan larian sebenar, dan sistem fail mempunyai pendapat sendiri, jadi larian yang anda luluskan dan larian yang dijalankan bukan operasi yang sama melainkan kedua-dua pokok tenang.
Dua tugas sehala tidak menjadikan penyegerakan dua hala
Menjalankan arahan yang sama dalam kedua-dua arah ialah cara paling biasa kehilangan data dalam senario ini. Setiap arah menganggap sisi lain sebagai destinasi dan dengan gembira menimpa kandungan yang lebih baharu, dan pemadaman dicerminkan mengikut urutan jadual dicetuskan.
Jika pengguna mesti menyunting kedua-dua salinan, itu keputusan produk yang lain: pengendalian konflik, penjejakan pemadaman dan alat yang direka untuk model itu. Menghampirinya dengan susunan jadual ialah cara folder kongsi mendapat dua versi setiap dokumen yang tiada siapa dapat mendamaikan. Putuskan secara jelas daripada menghampirinya dengan dua entri cron dan harapan.
Automasikan hanya selepas dasar ditulis
Tugas berjadual harus membawa arah, laluan, dasar metadata dan keputusan pemadaman yang diluluskan. Letakkan kelima-lima fakta itu dalam fail tugas itu sendiri, bukan pada halaman wiki yang mungkin tidak pernah dibaca pentadbir seterusnya. Halang larian bertindih, kerana dua salinan yang menulis pokok yang sama serentak menghasilkan keadaan yang tidak dimaksudkan oleh kedua-duanya.
Apabila sumber ialah pangkalan data hidup atau set data berbilang fail yang lain, ambil dahulu eksport yang konsisten dengan aplikasi atau petikan yang diselaraskan. Penjelajahan fail secara rekursif bukan transaksi, dan salinan set data yang berubah bukan yang konsisten.
Rekodkan penyiapan dan kegagalan, dan periksa set data di destinasi dan bukan hanya kod keluar. Memulihkan VPN selepas gangguan memulihkan sambungan; ia tidak mengatakan apa-apa tentang sama ada salinan terakhir selesai atau sama ada suntingan bercanggah pernah diselesaikan.