İki server, bir VPN, hər iki yerdə mövcud olmalı bir qovluq və işə salmaq asan, geri qaytarmaq çətin bir əmr. Onu yazmadan əvvəl hansı kopyanın səlahiyyətli olduğuna qərar verin, çünki sonrakı hər rsync sualı bu cavabdan asılıdır. Birtərəfli replika, ortaq iş qovluğu və versiyalı arxiv düzəlişlər və silinmələr üçün fərqli qaydalar tələb edir. Tunel yolu təmin edir və bunların heç biri barədə fikri yoxdur.

Əmr yazmadan əvvəl hansı kopyanın qalib gəldiyinə qərar verin

İstiqaməti bir cümlə ilə yazın, hər tərəfdə host adı və yolu daxil etməklə, və məlumatların sahibindən təsdiq alın. Bu izahda mənbə /srv/publish/, təyinat isə fileserver.example üzərində yalnız /srv/mirror/ daxilinə yaza bilən hesabdır.

Kopyalamadan əvvəl daşıma faktlarını təsdiqləyin: SSH host açarı yoxlanılıb, təyinat hesabı replika sahəsinə və başqa heç yerə yaza bilmir, və hər iki host uyğun rsync versiyalarına malikdir. Bu ilkin şərtlər kiçik planlaşdırma səhvinin icazə hadisəsinə çevrilməsinin qarşısını alır. Onlar həm də nə isə səhv gedəndə təyinatın jurnallarında hansı hesabın görünəcəyini bildirir.

Kopyanı önizləyin və təfərrüatlı siyahını oxuyun

Kopyanı əvvəlcə önizləmə bayrağı ilə işə salın və çıxışı saxlayın. Təfərrüatlı dəyişikliklər hər yolun başına nə gələcəyini bildirir, bu isə sonradan alınan yekun xülasədən qat-qat faydalıdır. Çıxışı dəyişiklik qeydinə qoyun ki, növbəti işə salmanın müqayisə edəcəyi bir şey olsun.

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

Sonuncu kəsr xətti vacibdir. Mənbə tərəfində o, həmin qovluğun məzmununu bildirir, onun buraxılması isə mənbənin adını daşıyan əlavə qovluq səviyyəsi əlavə edir. rsync təlimatı hər iki formanı metadatanın saxlanması bayraqları ilə birlikdə sənədləşdirir və sizə lazım olan seçimlər dəsti vərdişdən deyil, məlumatlardan asılıdır.

Hər sətri nəzərdə tutduğunuz təyinatla müqayisədə oxuyun. Önizləmə bayrağını çıxarmaq kopyalamanı icra edir və faylların üzərinə yaza bilər, silmə seçimi olmadan isə təyinatda artıq olan əlavə fayllar sadəcə olduqları yerdə qalır. Bu, yalnız arxada qalan köhnəlmiş faylların məqbul olduğuna həqiqətən qərar verdiyiniz halda təhlükəsiz standartdır. Cavab xeyirdirsə, bu əmrə əlavə bayraq səpmək deyil, aşağıdakı silmə qərarını vermək lazımdır.

Sonra silinmələrin köçüb-köçmədiyinə qərar verin

Təyinatı güzgüyə çevirmək ikinci qərardır, birincinin təkmilləşdirilməsi deyil. Onu ayrıca önizləyin, silmə bayrağı əlavə edilmiş və başqa heç nə dəyişdirilməmiş olsun ki, siyahıdakı fərq tamamilə həmin qərara aid olsun.

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

Silinmələr sinxronlaşdırılan əhatə daxilində qəbuledici tərəfdəki artıq faylları çıxarır, buna görə səhv mənbə yolu, qoşulmamış qovluq və ya nəzərdə tutulandan çoxunu istisna edən filtr dağıdıcı işə salmanı təmiz güzgü kimi göstərə bilər. Önizləmə siyahısı bu fərqin bahalı olmadan əvvəl görünən olduğu yeganə yerdir. Məlumatların haqq qazandırdığı yerdə müstəqil bərpa kopyası saxlayın və yadda saxlayın ki, güzgü təsadüfi silinməni tarixçəni qorumaq əvəzinə sədaqətlə təkrar edir.

Önizləmə heç nəyi də kilidləmir. İnsanlar sınaqla real işə salma arasında faylları düzəldir və fayl sistemlərinin öz fikirləri var, buna görə təsdiqlədiyiniz işə salma ilə icra olunan işə salma, hər iki ağac sakit olmadıqca eyni əməliyyat deyil.

İki birtərəfli iş ikitərəfli sinxronlaşdırma yaratmır

Eyni əmri hər iki istiqamətdə işə salmaq bu ssenaridə məlumat itirməyin ən geniş yayılmış yoludur. Hər istiqamət digər tərəfi təyinat kimi qəbul edir və daha yeni məzmunun üzərinə şadyanalıqla yazır, silinmələr isə cədvəlin işə düşmə sırası ilə güzgülənir.

İstifadəçilər hər iki kopyanı düzəltməlidirsə, bu başqa məhsul qərarıdır: konflikt idarəetməsi, silinmələrin izlənməsi və həmin model üçün dizayn edilmiş alət. Bunu cədvəl sırası ilə təqribən qurmaq, ortaq qovluğun hər sənədin heç kimin uzlaşdıra bilmədiyi iki versiyasını əldə etmə üsuludur. İki cron girişi və ümidlə təqribən qurmaq əvəzinə bunu açıq şəkildə qərarlaşdırın.

Yalnız siyasət yazıldıqdan sonra avtomatlaşdırın

Cədvəllənmiş iş istiqaməti, yolları, metadata siyasətini və təsdiqlənmiş silmə qərarını daşımalıdır. Bu beş faktı wiki səhifəsinə deyil, iş faylının özünə qoyun; növbəti administrator o səhifəni heç vaxt oxuya bilməz. Üst-üstə düşən işə salmaların qarşısını alın, çünki eyni ağaca eyni vaxtda yazan iki kopya heç birinin nəzərdə tutmadığı vəziyyət yaradır.

Mənbə canlı verilənlər bazası və ya başqa çoxfayllı məlumat dəsti olduqda, əvvəlcə tətbiqlə uzlaşan ixrac və ya koordinasiyalı anlıq görüntü götürün. Rekursiv fayl gəzintisi tranzaksiya deyil və dəyişən məlumat dəstinin kopyası uzlaşan deyil.

Tamamlanmaları və xətaları qeyd edin və yalnız çıxış kodunu deyil, təyinatdakı məlumat dəstini yoxlayın. Kəsintidən sonra VPN-i bərpa etmək əlaqəni bərpa edir; son kopyanın bitib-bitmədiyi və ya ziddiyyətli düzəlişlərin heç vaxt həll edilib-edilmədiyi barədə heç nə demir.

Əlaqəli məqalələr