rsync VPN-ի միջով. կրկնվող փորձ, որը վերաօգտագործում է կոտրված փոխանցումը
Ընկած թունելը վերջացնում է կապը, ոչ թե տվյալները։ Պահեք հատվածը --partial-dir-ով, նորից գործարկեք նույն պատճենը և ստուգեք ֆայլը նախքան հրապարակելը։
Ձեր վերբեռնումը կանգ է առնում տասներկու գիգաբայթանոց արխիվի չորս գիգաբայթի վրա, և ներբեռնման մենեջերներից սովորած սովորությունը ասում է՝ սեղմեք շարունակել։ rsync-ը չի շարունակի TCP հոսքը, որովհետև այդ հոսքը գնացել է թունելի վերջին վերահաղորդման հետ։ Ինչ որ կարող է անել, դա պահել արդեն ստացած բայթերը և դրանք օգտագործել որպես հաջորդ փորձի հիմք, ինչը այլ մեխանիզմ է՝ այլ կանոնների հավաքածուով։ Ձեր ընտրած դրոշակները որոշում են՝ այդ վերաօգտագործումը տեղի կունենա՞ արդյոք։
Կրկնվող փորձը վերակառուցում է վիճակը, այն չի շարունակում հոսքը
Երբ SSH նստաշրջանը կտրվում է, հեռավոր կողմում մնում է միայն այն, ինչ հասցրել է գրել սկավառակին, և ոչինչ ավելին։ Չկա նստաշրջանի նշան՝ նորից կցվելու համար, և չկա հաջորդականության համար՝ նորից նվագելու համար։ Հաջորդ գործարկումը բացում է նոր կապ, նորից կարդում աղբյուրը և հարցնում ստացողին, թե ինչ ունի արդեն։
Հենց այդ վերջին հարցն է բացատրում, թե ինչու արժե պահել մասնակի ֆայլը։ Ստացողի պատճենը rsync-ին տալիս է համեմատելու բան, և ալգորիթմը ուղարկում է միայն այն տարբերությունները, որ կարող է ճանաչել։ Սա դեռ նոր մետատվյալների փոխանցում է և աղբյուրի նոր անցում, ուստի խնայված ժամանակը համաչափ է նրան, թե ֆայլի որքա՞նն է համընկնում, ոչ թե նրան, թե որքա՞ն է առաջացել նախորդ կապը։ Եթե ստացողը ոչինչ չի պահել, հաջորդ փորձը լրիվ պատճեն է, անկախ նրանից, թե քանի գիգաբայթ է տեղափոխել առաջինը։
Որոշեք, թե որտեղ է ապրում վերաօգտագործելի հատվածը
Կանխադրված վարքը մասնակի ֆայլը գրում է նպատակակետի ուղու վրա, ինչը կիսով գրված արխիվը դարձնում է տեսանելի վերջնական անվան տակ։ --partial-dir այն տեղափոխում է ձեր ընտրած պանակ, և ձեռնարկը նկարագրում է այդ պանակը որպես պահված՝ ավելի ուշ փոխանցման կողմից որպես տվյալ օգտագործելու համար։ Հարաբերական անունը լուծվում է նպատակակետի պանակի տակ, ինչը հենց այն է, ինչ ուզում եք, երբ երկու ծայրերը կարող են տարբեր դասավորություններ ունենալ։
rsync -e ssh --partial-dir=.rsync-partial --info=progress2 -- \
large-archive.bin [email protected]:/srv/incoming/
Կարգը կարևոր է նաև նպատակակետում. մասնակի պանակին պետք է բավարար տեղ հատվածի համար, իսկ ծավալին՝ բավարար տեղ նաև ավարտված ֆայլի համար։ Թիրախային ծավալը փոխանցման կեսին լցնելը առաջացնում է ձախողում, որը նման է ցանցի խնդրի, բայց այդպիսին չէ, և կարող է պահված հատվածը թողնել կտրված։ Ստուգեք ազատ տեղը ստացող հոսթում մինչև գործարկման սկսվելը, ոչ թե ձախողվելուց հետո։ Մի քանի վայրկյան df -h-ով նույն SSH ուղու վրա ծրագրի ամենաէժան հնարավոր փորձությունն է։
Թույլտվությունները ավելի փոքր, բայց իրական մտահոգություն են։ Մասնակի պանակը, որտեղ կարող են գրել անկապ հաշիվներ, թույլ է տալիս մեկ ուրիշին փոխարինել բովանդակություն, որը ձեր հաջորդ գործարկումը կդիտարկի որպես արդեն ստացված։ Պահեք այն փոխանցման հաշվի սեփականության տակ և մի դրեք այնտեղ, որտեղից հրապարակում են այլ ծառայություններ։
Գործարկեք նույն պատճենը, ոչ ավելի խելացին
Վերաօգտագործումը կիրառվում է միայն այն ժամանակ, երբ աղբյուրը և նպատակակետը դեռ նկարագրում են նույն օբյեկտը։ Նույն ուղին, նույն անունը, նույն ֆայլը։ Աղբյուրի վերանվանումը կամ այլ նպատակակետի պանակ ցույց տալը սկսում է նոր համեմատություն ոչ մի օգտակար բանի հետ։
Մի ավելացրեք --whole-file, երբ ակնկալում եք դելտա վարք։ Այդ ընտրանքը rsync-ին ասում է պատճենել ամբողջ ֆայլը՝ առանց գլորվող ստուգիչ գումարի համեմատության, ինչը խելամիտ ընտրություն է արագ տեղական կապի վրա և ճիշտ հակառակը՝ ձախողված հեռավոր վերբեռնումից հետո։ --inplace նույնպես փոխում է պատմությունը. այն գրում է ուղիղ նպատակակետի ֆայլի մեջ, ուստի ընդհատումը թողնում է ֆայլ, որը խառնում է հին և նոր բովանդակությունը՝ առանց առանձին հատվածի, որին կարելի է հենվել։
Առաջընթացի տողը հաղորդում է փոխանցման ընդհանուր առաջընթացը։ Դա ավարտի ազդանշան չէ։ Թիվը, որը հասնում է հարյուր տոկոսի, մինչ կապը դեռ բաց է, նշանակում է, որ տվյալները հրվել են, ոչ թե որ ստացողը ինչ-որ բան վերանվանել, համաժամեցրել կամ ընդունել է։
Ընդունեք օբյեկտը միայն այն բանից հետո, երբ այն համընկնի
Նախ հաստատեք ելքի կարգավիճակը, ապա համեմատեք արդյունքը՝ սխալների բացակայությանը վստահելու փոխարեն։ Չափի ստուգումը բռնում է կտրված փոխանցումների մեծ մասը. ստուգիչ գումարների համեմատությունը՝ մնացածը, և երկուսն էլ էժան են՝ համեմատած վերբեռնումը նորից գործարկելու հետ։
Եթե արխիվը հրապարակվում է ներքևի գործընթացով, ստիպեք այդ գործընթացին սպասել ընդունված ֆայլին։ Պահված հատվածը, որը վերջնական անվան տակ ընկնում է հսկվող պանակ, վերցվում է հաջորդ սկանավորմամբ, և սպառողի սխալը կլինի վնասված մուտքի մասին, ոչ թե փոխանցման, որը երբեք չավարտվեց։
Ձեռք չտաք աղբյուրին, մինչև ստացողը հաստատի։ Փորձերի միջև արխիվի վերականգնումը փոխում է համեմատության հիմքը, և հաջորդ գործարկումը կամ գրեթե ամեն ինչ է փոխանցում, կամ ստեղծում է ֆայլ, որը չի համապատասխանում ոչ հին, ոչ նոր աղբյուրին։
Երբ սահմանը կապն է, ոչ դրոշակը
Վերնագրի և արձանագրության ծախսը փոխանցման ծախսերից մեկն է, և հազվադեպ է հենց այն, ինչ որոշում է, թե որքան ժամանակ է տևում մեծ ֆայլը։ Վերսկսման վարքը ավելի կարևոր է. մեթոդը, որը դիմանում է ընդհատմանը առանց ձեռքով քայլերի, ավելի շուտ է տալիս օգտագործելի ֆայլ, քան ավելի արագ մեթոդը, որը պետք է նորից սկսի։ Երկու ծայրերի պահեստավորումը և նույնականացման ուղին նույն համեմատության մեջ են։
Համեմատեք թույլատրված այլընտրանքային ուղիները նույն ֆայլով և նույն նպատակակետով, և նշեք, թե յուրաքանչյուրը որտեղից է վերսկսվում ընդհատումից հետո։ Այդ մեկ սյունակը ձեզ ավելի շատ է ասում VPN-ով տասներկու գիգաբայթանոց վերբեռնման մասին, քան կարճ փորձարկումում չափված ցանկացած պիկ արագություն։