Երկու սերվեր, մեկ VPN, մեկ պանակ, որը պետք է գոյություն ունենա երկու տեղերում, և հրաման, որը հեշտ է գործարկել և դժվար՝ հետարկել։ Նախքան այն գրելը որոշեք, թե որ պատճենն է հեղինակավոր, որովհետև rsync-ի մասին յուրաքանչյուր հաջորդ հարց կախված է այդ պատասխանից։ Միակողմանի պատճենը, ընդհանուր աշխատանքային պանակը և տարբերակված արխիվը փոփոխությունների և ջնջումների համար տարբեր կանոններ են պահանջում։ Թունելը տալիս է ուղին և որևէ կարծիք չունի դրանցից ոչ մեկի մասին։

Որոշեք, թե որ պատճենն է հաղթում, նախքան հրաման գրելը

Գրեք ուղղությունը մեկ նախադասությամբ՝ ներառյալ հոսթի անունը և ուղին յուրաքանչյուր կողմում, և ստացեք հաստատում տվյալների տիրոջից։ Այս ուղեցույցում աղբյուրը /srv/publish/-ն է, իսկ նպատակակետը՝ fileserver.example-ի վրա գտնվող հաշիվ, որը կարող է գրել միայն /srv/mirror/-ում։

Հաստատեք տեղափոխման փաստերը նախքան պատճենումը՝ SSH հոսթի բանալին ստուգված է, նպատակակետ հաշիվը կարող է գրել կրկնօրինակի տարածքում և ոչ մի այլ տեղ, և երկու հոսթերն էլ ունեն համատեղելի rsync տարբերակներ։ Այս նախապայմանները թույլ չեն տալիս փոքր պլանավորման սխալը դառնալ թույլտվությունների միջադեպ։ Դրանք նաև ասում են, թե որ հաշիվը կհայտնվի նպատակակետի մատյաններում, երբ ինչ-որ բան սխալ ընթանա։

Նախադիտեք պատճենը և կարդացեք մանրամասն ցանկը

Գործարկեք պատճենումը նախ նախադիտման դրոշակով և պահպանեք ելքը։ Մանրամասն փոփոխությունները ասում են, թե ինչ կլիներ յուրաքանչյուր ուղու հետ, ինչը շատ ավելի օգտակար է, քան փաստից հետո արված ամփոփումը։ Պահեք ելքը փոփոխությունների մատյանում, որպեսզի հաջորդ գործարկումը համեմատելու բան ունենա։

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

Վերջնական շեղը կարևոր է։ Աղբյուրի կողմում այն նշանակում է այդ պանակի պարունակությունը, մինչդեռ այն բաց թողնելը ավելացնում է լրացուցիչ պանակի մակարդակ՝ անվանված աղբյուրի անունով։ rsync-ի ձեռնարկը նկարագրում է երկու ձևերն էլ՝ մետատվյալների պահպանման դրոշակների հետ միասին, և ձեզ անհրաժեշտ ընտրանքների հավաքածուն կախված է տվյալներից, ոչ թե սովորությունից։

Կարդացեք յուրաքանչյուր տողը ձեր նախատեսած նպատակակետի համեմատ։ Նախադիտման դրոշակը հեռացնելը կատարում է պատճենումը և կարող է վերագրել ֆայլեր, իսկ ջնջման ընտրանքի բացակայության դեպքում նպատակակետում արդեն եղած ավելորդ ֆայլերը պարզապես մնում են իրենց տեղում։ Սա անվտանգ լռելյայն է միայն այն դեպքում, եթե դուք իսկապես որոշել եք, որ հետևում թողնված հնացած ֆայլերն ընդունելի են։ Եթե պատասխանը ոչ է, ապա պետք է կայացնել ստորև նկարագրված ջնջման որոշումը, այլ ոչ թե այս հրամանի մեջ լրացուցիչ դրոշակ ցանել։

Ապա որոշեք՝ արդյոք ջնջումները տեղափոխվում են

Նպատակակետը հայելու վերածելը երկրորդ որոշում է, ոչ թե առաջինի ճշգրտում։ Նախադիտեք այն առանձին՝ ավելացնելով ջնջման դրոշակը և ուրիշ ոչինչ չփոխելով, որպեսզի ցանկի տարբերությունը ամբողջությամբ պատկանի այդ որոշմանը։

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

Ջնջումները հեռացնում են ավելորդ ֆայլերը ստացող կողմում՝ համաժամեցված ծավալի սահմաններում, ինչի պատճառով սխալ աղբյուրի ուղին, չմիացված պանակը կամ նախատեսվածից ավելի բացառող զտիչը կարող են կործանարար գործարկումը ցույց տալ որպես մաքուր հայելի։ Նախադիտման ցանկը միակ տեղն է, որտեղ այդ տարբերությունը տեսանելի է դառնում նախքան թանկ դառնալը։ Պահեք անկախ վերականգնման պատճեն այնտեղ, որտեղ տվյալները դա արդարացնում են, և հիշեք, որ հայելին հավատարմորեն վերարտադրում է պատահական ջնջումը՝ պատմությունը պահպանելու փոխարեն։

Նախադիտումը նաև ոչինչ չի կողպում։ Մարդիկ խմբագրում են ֆայլեր փորձի և իրական գործարկման միջև, իսկ ֆայլային համակարգերն ունեն իրենց կարծիքը, ուստի ձեր հաստատած գործարկումը և կատարվող գործարկումը նույն գործողությունը չեն, քանի դեռ երկու ծառերն էլ հանգիստ չեն։

Երկու միակողմանի աշխատանք երկկողմանի համաժամեցում չեն ստեղծում

Նույն հրամանը երկու ուղղությամբ գործարկելը տվյալների կորստի ամենատարածված ձևն է այս սցենարում։ Յուրաքանչյուր ուղղություն մյուս կողմը համարում է նպատակակետ և ուրախությամբ վերագրում է ավելի նոր բովանդակությունը, իսկ ջնջումները հայելավորվում են այն հերթականությամբ, ինչով գործարկվում է ժամանակացույցը։

Եթե օգտատերերը պետք է խմբագրեն երկու պատճեններն էլ, դա այլ ապրանքային որոշում է՝ կոնֆլիկտների մշակում, ջնջումների հետևում և այդ մոդելի համար նախատեսված գործիք։ Ժամանակացույցի հերթականությամբ այն մոտարկելը այն ձևն է, որով ընդհանուր պանակը ձեռք է բերում յուրաքանչյուր փաստաթղթի երկու տարբերակ, որոնք ոչ ոք չի կարող հաշտեցնել։ Որոշեք դա բացահայտ՝ փոխարենը այն մոտարկելու երկու cron գրառումներով և հույսով։

Ավտոմատացրեք միայն այն բանից հետո, երբ քաղաքականությունը գրված է

Պլանավորված աշխատանքը պետք է կրի ուղղությունը, ուղիները, մետատվյալների քաղաքականությունը և հաստատված ջնջման որոշումը։ Տեղադրեք այդ հինգ փաստերը հենց աշխատանքի ֆայլում, այլ ոչ թե վիքի էջում, որը հաջորդ ադմինիստրատորը գուցե երբեք չկարդա։ Կանխեք համընկնող գործարկումները, որովհետև նույն ծառը միաժամանակ գրող երկու պատճեններ ստեղծում են վիճակ, որը ոչ մեկը չէր նախատեսել։

Երբ աղբյուրը կենդանի տվյալների բազա է կամ այլ բազմաֆայլ տվյալների հավաքածու, նախ վերցրեք հավելվածին համահունչ արտահանում կամ համաձայնեցված պահոց։ Ֆայլերի ռեկուրսիվ շրջումը գործարք չէ, և փոփոխվող տվյալների հավաքածուի պատճենը համահունչ չէ։

Գրանցեք ավարտներն ու ձախողումները և ստուգեք տվյալների հավաքածուն նպատակակետում, ոչ միայն ելքի կոդը։ VPN-ի վերականգնումը խափանումից հետո վերականգնում է կապը, բայց ոչինչ չի ասում վերջին պատճենի ավարտի կամ հակասական փոփոխությունների լուծման մասին։

Առնչվող հոդվածներ