rsync VPN-ის მეშვეობით: რომელი მხარეა ჭეშმარიტების წყარო?
გვირაბი გაძლევთ გზას და არა შერწყმის პოლიტიკას. აირჩიეთ ავტორიტეტული ასლი, გადახედეთ ცალმხრივ ასლს წინასწარ და შემდეგ ცალკე გადაწყვიტეთ, მოძრაობს თუ არა წაშლები.
ორი სერვერი, ერთი 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-ის აღდგენა შეფერხების შემდეგ აღადგენს კავშირს; ის არაფერს ამბობს იმაზე, დასრულდა თუ არა ბოლო ასლი ან გადაწყდა თუ არა კონფლიქტური ცვლილებები.