rsync ve VPN: hangi taraf doğrunun kaynağı?
Bir tünel size yol verir, birleştirme politikası vermez. Yetkili kopyayı seçin, tek yönlü kopyayı önizleyin ve ardından silmelerin taşınıp taşınmayacağına ayrıca karar verin.
İki sunucu, bir VPN, her iki yerde de bulunması gereken bir dizin ve çalıştırması kolay, geri alması zor bir komut. Yazmadan önce hangi kopyanın yetkili olduğuna karar verin, çünkü sonraki her rsync sorusu bu yanıta bağlıdır. Tek yönlü bir replika, paylaşılan bir çalışma klasörü ve sürümlenmiş bir arşiv, düzenlemeler ve silmeler için farklı kurallara ihtiyaç duyar. Tünel yolu sağlar ve bunların hiçbiri hakkında görüş bildirmez.
Bir komut yazmadan önce hangi kopyanın kazandığına karar verin
Yönü tek bir cümleyle, her iki taraftaki ana bilgisayar adı ve yol dahil olacak şekilde yazın ve verinin sahibine onaylatın. Bu anlatımda kaynak /srv/publish/, hedef ise fileserver.example üzerinde yalnızca /srv/mirror/ içine yazabilen bir hesaptır.
Kopyalamadan önce taşıma gerçeklerini doğrulayın: SSH ana bilgisayar anahtarı doğrulanmış, hedef hesap replika alanına ve başka hiçbir yere yazamıyor ve iki ana bilgisayar da uyumlu rsync sürümlerine sahip. Bu ön koşullar, küçük bir planlama hatasının izin olayına dönüşmesini engeller. Ayrıca bir şey ters gittiğinde hedefin günlüklerinde hangi hesabın görüneceğini de söylerler.
Kopyayı önizleyin ve ayrıntılı listeyi okuyun
Kopyayı önce önizleme bayrağıyla çalıştırın ve çıktıyı saklayın. Ayrıntılı değişiklikler her yola ne olacağını söyler; bu, sonradan alınan bir tamamlanma özetinden çok daha faydalıdır. Çıktıyı değişiklik kaydına koyun ki bir sonraki çalıştırmanın karşılaştıracağı bir şey olsun.
rsync -rt --dry-run --itemize-changes -e ssh -- /srv/publish/ [email protected]:/srv/mirror/
Sondaki eğik çizgi önemlidir. Kaynakta o dizinin içeriği anlamına gelir, onu atlamak ise kaynağın adını taşıyan ek bir dizin düzeyi ekler. rsync kılavuzu her iki biçimi de meta verileri koruma bayraklarıyla birlikte belgeler ve ihtiyacınız olan seçenek kümesi alışkanlığa değil veriye bağlıdır.
Her satırı amaçladığınız hedefe göre okuyun. Önizleme bayrağını kaldırmak kopyalamayı gerçekleştirir ve dosyaların üzerine yazabilir; silme seçeneği olmadan hedefte zaten bulunan fazla dosyalar oldukları yerde kalır. Bu yalnızca geride kalan eskimiş dosyaların kabul edilebilir olduğuna gerçekten karar verdiyseniz güvenli varsayılandır. Yanıt hayırsa, bu komuta ek bir bayrak serpiştirmek değil, aşağıdaki silme kararını vermek gerekir.
Sonra silmelerin taşınıp taşınmayacağına karar verin
Hedefi ayna yapmak ikinci bir karardır, birincinin inceltilmesi değil. Onu ayrı olarak önizleyin, silme bayrağı eklenmiş ve başka hiçbir şey değiştirilmemiş olsun, böylece listedeki fark tamamen o karara ait olsun.
rsync -rt --delete --dry-run --itemize-changes -e ssh -- /srv/publish/ [email protected]:/srv/mirror/
Silmeler, eşitlenen kapsam içinde alıcı taraftaki gereksiz dosyaları kaldırır; bu yüzden yanlış bir kaynak yolu, bağlanmamış bir dizin veya amaçlanandan fazlasını dışlayan bir filtre, yıkıcı bir çalıştırmayı temiz bir ayna gibi gösterebilir. Önizleme listesi, bu farkın pahalı hale gelmeden önce görünür olduğu tek yerdir. Verinin haklı gösterdiği yerlerde bağımsız bir kurtarma kopyası tutun ve bir aynanın geçmişi korumak yerine kazara silmeyi sadakatle yeniden ürettiğini unutmayın.
Önizleme hiçbir şeyi de kilitlemez. İnsanlar deneme ile gerçek çalıştırma arasında dosyaları düzenler ve dosya sistemlerinin kendi görüşleri vardır; bu yüzden onayladığınız çalıştırma ile yürütülen çalıştırma, iki ağaç da sessiz olmadıkça aynı işlem değildir.
İki tek yönlü iş, iki yönlü bir eşitleme oluşturmaz
Aynı komutu iki yönde çalıştırmak, bu senaryoda veri kaybetmenin en yaygın yoludur. Her yön diğer tarafı hedef olarak görür ve daha yeni içeriğin üzerine seve seve yazar; silmeler ise zamanlamanın tetiklenme sırasına göre aynalanır.
Kullanıcılar iki kopyayı da düzenlemek zorundaysa, bu başka bir ürün kararıdır: çakışma yönetimi, silme izleme ve o model için tasarlanmış bir araç. Bunu zamanlama sırasıyla yaklaşık olarak kurmak, paylaşılan bir klasörün her belgenin kimsenin uzlaştıramayacağı iki sürümünü edinme biçimidir. İki cron girdisi ve umutla yaklaşık olarak kurmak yerine bunu açıkça kararlaştırın.
Yalnızca politika yazıldıktan sonra otomatikleştirin
Zamanlanmış bir iş, yönü, yolları, meta veri politikasını ve onaylanmış silme kararını taşımalıdır. Bu beş olguyu bir wiki sayfasına değil, iş dosyasının kendisine koyun; sonraki yönetici o sayfayı hiç okumayabilir. Çakışan çalıştırmaları önleyin, çünkü aynı anda aynı ağaca yazan iki kopya, hiçbirinin amaçlamadığı bir durum üretir.
Kaynak canlı bir veritabanı veya başka bir çok dosyalı veri kümesi olduğunda, önce uygulamayla tutarlı bir dışa aktarım veya koordineli bir anlık görüntü alın. Özyinelemeli bir dosya taraması işlem değildir ve değişen bir veri kümesinin kopyası tutarlı değildir.
Tamamlanmaları ve hataları kaydedin ve yalnızca çıkış durumunu değil, hedefteki veri kümesini kontrol edin. Bir kesintiden sonra VPN'i geri yüklemek bağlantıyı geri getirir; son kopyanın bitip bitmediği veya çakışan düzenlemelerin hiç çözülüp çözülmediği hakkında hiçbir şey söylemez.