Ikkita server, bitta VPN, ikkala joyda ham bo'lishi kerak bo'lgan bitta papka va ishga tushirish oson, bekor qilish qiyin bo'lgan buyruq. Uni yozishdan oldin qaysi nusxa ishonchli ekanini hal qiling, chunki har bir keyingi rsync savoli shu javobga bog'liq. Bir tomonlama replika, umumiy ish papkasi va versiyalangan arxiv o'zgarishlar va o'chirishlar uchun turli qoidalarni talab qiladi. Tunnel yo'lni taqdim etadi va ularning hech biri haqida fikri yo'q.

Buyruq yozishdan oldin qaysi nusxa yutishini hal qiling

Yo'nalishni bitta jumlada yozing, har tomonda xost nomi va yo'lni qo'shib, va ma'lumot egasidan tasdiq oling. Bu qo'llanmada manba /srv/publish/, manzil esa fileserver.example ustidagi faqat /srv/mirror/ ichiga yozishga ruxsat berilgan hisob.

Nusxalashdan oldin transport faktlarini tasdiqlang: SSH xost kaliti tekshirilgan, manzil hisobi replika hududiga yozadi va boshqa joyga emas, ikkala xost ham mos rsync versiyalariga ega. Bu shartlar kichik rejalashtirish xatosining ruxsat hodisasiga aylanishini oldini oladi. Ular shuningdek biror narsa noto'g'ri bo'lsa, manzil jurnallarida qaysi hisob ko'rinishini aytadi.

Nusxani oldindan ko'ring va batafsil ro'yxatni o'qing

Nusxani avval ko'rish bayrog'i bilan ishga tushiring va chiqishni saqlang. Batafsil o'zgarishlar har bir yo'l bilan nima bo'lishini aytadi, bu esa keyingi umumlashtirishdan ancha foydali. Chiqishni o'zgarishlar daftariga saqlang, keyingi ishga tushirishda solishtirish uchun narsa bo'lsin.

rsync -rt --dry-run --itemize-changes -e ssh -- /srv/publish/ [email protected]:/srv/mirror/

Oxirgi qiya chiziq muhim. Manba tomonida u shu papka mazmunini bildiradi, uni tashlab ketish esa manba nomi bilan atalgan qo'shimcha papka darajasini qo'shadi. rsync qo'llanmasi ikkala shaklni metama'lumotlarni saqlash bayroqlari bilan birga hujjatlashtiradi va sizga kerak bo'lgan parametrlar to'plami odatga emas, ma'lumotlarga bog'liq.

Har bir satrni o'zingiz ko'zlagan manzilga qiyoslab o'qing. Ko'rish bayrog'ini olib tashlash nusxalashni bajaradi va fayllarni ustidan yozishi mumkin, o'chirish parametri bo'lmasa manzilda allaqachon bor ortiqcha fayllar o'z joyida qoladi. Bu faqat orqada qolgan eski fayllar maqbul deb haqiqatan qaror qilgan bo'lsangizgina xavfsiz standart hisoblanadi. Javob yo'q bo'lsa, bu buyruqqa qo'shimcha bayroq sepish emas, quyidagi o'chirish qarorini qabul qilish kerak.

Keyin o'chirishlar birga ketishini hal qiling

Manzilni oynaga aylantirish ikkinchi qaror, birinchisini sayqallash emas. Uni alohida ko'ring, o'chirish bayrog'i qo'shilib, boshqa hech narsa o'zgartirilmasin, ro'yxatdagi farq to'liq shu qarorga tegishli bo'lsin.

rsync -rt --delete --dry-run --itemize-changes -e ssh -- /srv/publish/ [email protected]:/srv/mirror/

O'chirishlar sinxronlangan doirada qabul qiluvchi tomondagi ortiqcha fayllarni olib tashlaydi, shuning uchun noto'g'ri manba yo'li, ulanmagan papka yoki ko'zlagandan ko'proq istisno qiladigan filtr buzg'unchi ishga tushirishni toza oynaga o'xshatishi mumkin. Ko'rish ro'yxati bu farq qimmatga tushishdan oldin ko'rinadigan yagona joy. Ma'lumotlar oqlaydigan joyda mustaqil tiklash nusxasini saqlang va oyna tarixni saqlash o'rniga tasodifiy o'chirishni sodiqlik bilan qayta hosil qilishini unutmang.

Ko'rish hech narsani qulflamaydi. Odamlar sinov va haqiqiy ishga tushirish o'rtasida fayllarni tahrirlaydi, fayl tizimlarining o'z fikri bor, shuning uchun siz ma'qullagan ishga tushirish va amalda bo'ladigan ishga tushirish, ikkala daraxt ham tinch bo'lmasa, bir xil amal emas.

Ikkita bir tomonlama ish ikki tomonlama sinxronlashni yaratmaydi

Bir buyruqni ikkala yo'nalishda ishga tushirish bu stsenariyda ma'lumot yo'qotishning eng keng tarqalgan usuli. Har bir yo'nalish qarama-qarshi tomonni manzil deb hisoblaydi va yangiroq tarkibni xursandchilik bilan ustidan yozadi, o'chirishlar esa jadval ishga tushadigan tartibda aks etadi.

Agar foydalanuvchilar ikkala nusxani tahrirlashi kerak bo'lsa, bu boshqa mahsulot qarori: ziddiyatlarni boshqarish, o'chirishlarni kuzatish va shu model uchun yaratilgan vosita. Buni jadval tartibi bilan yaqinlashtirish — umumiy papka har bir hujjatning hech kim kelishtira olmaydigan ikkita versiyasini olish yo'li. Ikki cron yozuvi va umid bilan yaqinlashtirish o'rniga buni aniq hal qiling.

Faqat siyosat yozilgandan keyin avtomatlashtiring

Rejalashtirilgan ish yo'nalishni, yo'llarni, metama'lumotlar siyosatini va tasdiqlangan o'chirish qarorini olib yurishi kerak. Bu besh faktni ish faylining o'ziga joylashtiring, keyingi administrator hech qachon o'qimasligi mumkin bo'lgan wiki sahifasiga emas. Bir-biriga tushib qoladigan ishga tushirishlarning oldini oling, chunki bir daraxtga bir vaqtda yozayotgan ikki nusxa hech biri ko'zlamagan holatni yaratadi.

Manba tirik ma'lumotlar bazasi yoki boshqa ko'p faylli ma'lumotlar to'plami bo'lsa, avval dastur bilan mos eksport yoki muvofiqlashtirilgan surat oling. Fayllar bo'ylab rekursiv yurish tranzaksiya emas, o'zgarib turuvchi ma'lumotlar to'plamining nusxasi esa izchil emas.

Tugashlar va xatolarni yozib boring va faqat chiqish kodini emas, manzildagi ma'lumotlar to'plamini tekshiring. Uzilishdan keyin VPNni tiklash aloqani tiklaydi; u oxirgi nusxa tugaganini yoki ziddiyatli tahrirlar qachonlardir hal qilinganini aytmaydi.

O'xshash maqolalar