rsync არის მძლავრი და მრავალმხრივი ბრძანების ხაზის უტილიტა ფაილების და დირექტორიების სინქრონიზაციისთვის ორ ლოკაციას შორის. ის ფართოდ გამოიყენება სარეზერვო ასლების, მირინგის და მონაცემთა ეფექტური გადაცემისთვის, რადგან მას შეუძლია მხოლოდ ფაილებს შორის არსებული განსხვავებების გადატანა.
1. შესავალი rsync-ში
rsync (remote synchronize) არის უტილიტა ფაილების ეფექტური გადაცემისა და სინქრონიზაციისთვის კომპიუტერსა და საცავ სისტემას შორის და პირიქით. ის იყენებს დელტა-კოდირების ალგორითმს მონაცემთა გადაცემის მინიმიზაციისთვის, მხოლოდ ფაილების შეცვლილი ნაწილების გაგზავნით.
2. ძირითადი მახასიათებლები
- დელტა გადაცემის ალგორითმი: მხოლოდ ფაილების შეცვლილ ნაწილებს გადასცემს, ზოგავს გამტარუნარიანობას და დროს.
- დისტანციური Shell-ის მხარდაჭერა: შეუძლია გამოიყენოს SSH უსაფრთხო გადაცემისთვის ქსელზე.
- ატრიბუტების შენარჩუნება: შეუძლია შეინარჩუნოს ნებართვები, მფლობელობა, დროის ნიშნები, სიმბოლური ბმულები და სხვა.
- მოქნილი ფილტრაცია: იძლევა კონკრეტული ფაილების და დირექტორიების ჩართვას ან გამორიცხვას.
- Daemon რეჟიმი: შეუძლია იმუშაოს როგორც დემონი დაგეგმილი სარეზერვო ასლების და სინქრონიზაციისთვის.
3. ძირითადი გამოყენება
rsync-ის ზოგადი სინტაქსი ასეთია:
მოდით განვიხილოთ რამდენიმე ძირითადი მაგალითი.
ლოკალურიდან ლოკალურზე
დირექტორიის კოპირება თქვენი ლოკალური მანქანის ერთი მდებარეობიდან მეორეზე.
მიაქციეთ ყურადღება ბოლო სლეშს:
source_dir/: სინქრონიზაციას უკეთებსsource_dir-ის შინაარსს.source_dir: სინქრონიზაციას უკეთებსsource_dir-ს თვითონ დანიშნულების ადგილას.
ლოკალურიდან დაშორებულზე
ფაილების კოპირება თქვენი ლოკალური მანქანიდან დისტანციურ სერვერზე. დაგჭირდებათ SSH წვდომა დისტანციურ სერვერზე.
დაშორებულიდან ლოკალურზე
ფაილების კოპირება დისტანციური სერვერიდან თქვენს ლოკალურ მანქანაზე.
4. მნიშვნელოვანი ოფციები
მოდით განვიხილოთ rsync-ის ყველაზე ხშირად გამოყენებული ოფციები.
-a (არქივის რეჟიმი)
ეს არის ერთ-ერთი ყველაზე მნიშვნელოვანი და ხშირად გამოყენებული ოფცია. ის არის რამდენიმე სხვა ოფციის (-rlptgoD) კომბინაცია, რომელიც უზრუნველყოფს რეკურსიულ კოპირებას, რომელიც ინარჩუნებს თითქმის ყველაფერს.
-r: რეკურსიული-l: სიმბოლური ბმულების კოპირება როგორც სიმბოლური ბმულები-p: ნებართვების შენარჩუნება-t: მოდიფიკაციის დროის შენარჩუნება-g: ჯგუფის შენარჩუნება-o: მფლობელის შენარჩუნება (მხოლოდ root)-D: მოწყობილობის ფაილების და სპეციალური ფაილების შენარჩუნება (მხოლოდ root)
მაგალითი:
-v (დეტალური)
ზრდის დეტალურობას, გიჩვენებთ რომელი ფაილები გადაიცემა და გაწვდით მეტ დეტალს პროცესის შესახებ.
მაგალითი:
-z (შეკუმშვა)
შეკუმშავს ფაილის მონაცემებს გადაცემის დროს, რამაც შეიძლება მნიშვნელოვნად დააჩქაროს გადაცემა ნელი ქსელის კავშირებისას.
მაგალითი:
-h (ადამიანისთვის წაკითხვადი)
გამოაქვს რიცხვები ადამიანისთვის წაკითხვად ფორმატში (მაგ., 1K, 234M, 2G). ხშირად გამოიყენება -v-სთან ერთად.
მაგალითი:
--delete (ზედმეტი ფაილების წაშლა)
ეს ოფცია გადამწყვეტია მირინგისთვის. ის შლის ფაილებს დანიშნულების ადგილას, რომლებიც არ არსებობს წყაროში. გამოიყენეთ სიფრთხილით!
მაგალითი:
--exclude და --include (ფაილების ფილტრაცია)
ეს ოფციები საშუალებას გაძლევთ მიუთითოთ ფაილების ან დირექტორიების შაბლონები, რომლებიც უნდა გამოირიცხოს ან ჩაირთოს გადაცემაში. --exclude უპირატესობას ანიჭებს --include-ს.
მაგალითი: კონკრეტული დირექტორიის და ფაილის ტიპის გამორიცხვა
მაგალითი: მხოლოდ კონკრეტული ფაილის ტიპების ჩართვა
--dry-run (ტესტირება ცვლილებების გარეშე)
ძალიან სასარგებლოა თქვენი rsync ბრძანების შესამოწმებლად რეალური ცვლილებების განხორციელებამდე. ის გიჩვენებთ, რა მოხდებოდა რეალურად არაფრის კოპირების ან წაშლის გარეშე.
მაგალითი:
-P (პროგრესი და ნაწილობრივი)
ეს არის --progress (აჩვენებს გადაცემის პროგრესს) და --partial (ინახავს ნაწილობრივ გადაცემულ ფაილებს, რაც საშუალებას გაძლევთ გააგრძელოთ შეწყვეტილი გადაცემები) კომბინაცია.
მაგალითი:
-e (დისტანციური shell-ის მითითება)
საშუალებას გაძლევთ მიუთითოთ დისტანციური shell, რომლის გამოყენებაც გსურთ, როგორც წესი, სხვა SSH პორტის ან გასაღების გამოყენებისთვის.
მაგალითი: კონკრეტული SSH გასაღების გამოყენება
მაგალითი: მორგებული SSH პორტის გამოყენება
5. გამოყენების გავრცელებული შემთხვევები
ვებსაიტის განთავსება
თქვენი ლოკალური ვებსაიტის განვითარების დირექტორიის სინქრონიზაცია დისტანციურ ვებ სერვერთან.
ყოველდღიური სარეზერვო ასლები
მნიშვნელოვანი ფაილების ყოველდღიური სარეზერვო ასლის შექმნა გარე დისკზე ან დისტანციურ სარეზერვო სერვერზე.
დირექტორიების მირინგი
დირექტორიის ზუსტი ასლის შენარჩუნება, იმის უზრუნველყოფა, რომ ნებისმიერი ცვლილება (დამატებები, მოდიფიკაციები, წაშლა) წყაროში აისახოს დანიშნულების ადგილას.
მონაცემთა მიგრაცია
დიდი მოცულობის მონაცემების გადაცემა სერვერებს შორის.
ეს ბრძანება ასრულებს rsync-ს თქვენი ლოკალური მანქანიდან, იღებს მონაცემებს old_server-დან და უბიძგებს new_server-ზე.
6. მოწინავე თემები
Rsync Daemon
მოწინავე სცენარებისთვის, rsync-ს შეუძლია იმუშაოს როგორც დემონი, რაც კლიენტებს საშუალებას აძლევს დაუკავშირდნენ SSH-ის გარეშე. ეს გავრცელებულია საჯარო სარკეებისთვის ან შიდა ქსელის სარეზერვო ასლებისთვის, სადაც SSH-ზე პირდაპირი წვდომა არ არის სასურველი ყველა კლიენტისთვის.
ტიპიური rsyncd.conf ფაილი შეიძლება ასე გამოიყურებოდეს:
დემონთან დასაკავშირებლად:
გამტარუნარიანობის ლიმიტირება
შეგიძლიათ შეზღუდოთ გამტარუნარიანობა, რომელსაც rsync იყენებს გადაცემის დროს. ეს სასარგებლოა rsync-ის მიერ თქვენი ქსელის კავშირის გაჯერების თავიდან ასაცილებლად.
7. დასკვნა
rsync არის შეუცვლელი ინსტრუმენტი მათთვის, ვინც მართავს ფაილებს სხვადასხვა სისტემებს შორის. მისი ეფექტურობა, მოქნილობა და მდიდარი ფუნქციონალი მას შესაფერისს ხდის მრავალი ამოცანისთვის, მარტივი ფაილის კოპირებიდან რთულ სარეზერვო ასლების სტრატეგიებამდე და სისტემის მიგრაციებამდე. rsync-ის დაუფლება მნიშვნელოვნად გააუმჯობესებს თქვენს შესაძლებლობას ეფექტურად მართოთ მონაცემები.