Rsync για Linux: συγχρονισμός, αντιγραφή και δημιουργία αντιγράφων ασφαλείας αρχείων

9 λεπτά ανάγνωσης - 24 Μαΐου 2025

hero section cover
Πίνακας περιεχομένων
  • Rsync για Linux: πώς να συγχρονίζετε, να αντιγράφετε και να δημιουργείτε αντίγραφα ασφαλείας αρχείων σαν επαγγελματίας
  • Τι είναι το rsync;
  • Γιατί να χρησιμοποιήσετε το rsync αντί για το cp ή το scp
  • Συνηθισμένες επιλογές rsync
  • Παραδείγματα Rsync
  • Αυτοματοποίηση του rsync με το cron
  • Τελικές σκέψεις
Κοινοποίηση

Πώς να χρησιμοποιείτε το rsync στο Linux για αυξητικές μεταφορές, απομακρυσμένους συγχρονισμούς μέσω SSH, προγραμματισμένα αντίγραφα ασφαλείας με cron και αποφυγή της παγίδας trailing-slash.

Rsync για Linux: πώς να συγχρονίζετε, να αντιγράφετε και να δημιουργείτε αντίγραφα ασφαλείας αρχείων σαν επαγγελματίας

Το Rsync είναι το τυπικό εργαλείο για την αντιγραφή αρχείων μεταξύ συστημάτων Linux. Είναι ταχύτερο από cp ή scp για οτιδήποτε εκτελείτε περισσότερες από μία φορές, ανακτά τα δεδομένα σε περίπτωση διακοπής δικτύου και μεταφέρει μόνο ό,τι έχει πράγματι αλλάξει. Αυτή η ανάρτηση καλύπτει τι κάνει το rsync, τις σημαίες που αξίζει να γνωρίζετε, τα παραδείγματα που θα χρησιμοποιείτε πιο συχνά και πώς να το προγραμματίσετε με το cron.


 

Τι είναι το rsync;

Το rsync είναι ένα βοηθητικό πρόγραμμα γραμμής εντολών για την αντιγραφή και τον συγχρονισμό αρχείων μεταξύ τοποθεσιών. Λειτουργεί τοπικά, μέσω SSH σε έναν απομακρυσμένο κεντρικό υπολογιστή ή σε σχέση με ένα δαίμονα rsync. Η βασική διαφορά από cp ή scp: το rsync συγκρίνει πρώτα την πηγή και τον προορισμό και, στη συνέχεια, μεταφέρει μόνο τις διαφορές. Σε έναν κατάλογο 100 GB όπου έχουν αλλάξει 200 MB, το rsync μεταφέρει 200 MB. cp και scp μεταφέρουν τα πάντα.

Περιλαμβάνεται σε κάθε σύγχρονη διανομή Linux. Αν λείπει: apt install rsync ή dnf install rsync.

Γιατί να χρησιμοποιήσετε το rsync αντί για το cp ή το scp

Τρεις λόγοι για τους οποίους το rsync υπερισχύει για οποιαδήποτε μη ασήμαντη αντιγραφή:

  • Είναι σταδιακό. Οι επόμενες εκτελέσεις μεταφέρουν μόνο τα byte που έχουν αλλάξει, όχι ολόκληρα αρχεία. Για αντίγραφα ασφαλείας και καθρέφτες, αυτό μετατρέπει μια εργασία που διαρκεί όλη τη νύχτα σε λίγα λεπτά.
  • Αντέχει στις διακοπές. Με --partial, ένα αρχείο 50 GB που έχει μεταφερθεί κατά το ήμισυ συνεχίζει από το σημείο που σταμάτησε, αντί να ξεκινά από την αρχή.
  • Διατηρεί τα μεταδεδομένα. Η λειτουργία αρχειοθέτησης (-a) διατηρεί δικαιώματα, ιδιοκτησία, συμβολικούς συνδέσμους και χρονικές σημάνσεις. Κρίσιμο για αρχεία συστήματος, δέντρα πηγαίου κώδικα και οτιδήποτε όπου τα χαρακτηριστικά έχουν σημασία.

Για μεμονωμένες αντιγραφές μικρών αρχείων, το scp είναι εντάξει. Για οτιδήποτε επαναλαμβάνεται, οτιδήποτε απαιτεί μεγάλο εύρος ζώνης ή οτιδήποτε μπορεί να χρειαστεί να συνεχίσετε, χρησιμοποιήστε το rsync.

Συνηθισμένες επιλογές rsync

Οι σημαίες που θα χρησιμοποιήσετε στην πράξη:

ΕπιλογήΤι κάνει
-aΛειτουργία αρχειοθέτησης. Διατηρεί δικαιώματα, ιδιοκτησία, συμβολικούς συνδέσμους, χρονικές σημάνσεις. Ισοδύναμο με -rlptgoD.
-vVerbose. Παραθέτει τα αρχεία που μεταφέρονται.
-zΣυμπίεση κατά τη μεταφορά. Χρήσιμο σε αργές ή ακριβές συνδέσεις, λιγότερο χρήσιμο σε LAN ή για ήδη συμπιεσμένο περιεχόμενο.
-PΣυνδυάζει --partial και --progress. Επανάληψη διακοπμένων μεταφορών, εμφάνιση της πρόοδος σε πραγματικό χρόνο.
--deleteΔιαγραφή αρχείων στον προορισμό που δεν υπάρχουν στην πηγή. Απαιτείται για έναν πραγματικό καθρέφτη.
--excludeΠαράλειψη αρχείων που ταιριάζουν με ένα μοτίβο.
--exclude-from=FILEΔιαβάζει μοτίβα εξαίρεσης από ένα αρχείο. Καθαρότερο από την αλυσιδωτή χρήση πολλών --exclude σημαίες.
--dry-runΕμφάνιση του τι θα συνέβαινε χωρίς να μεταφερθεί τίποτα.
--bwlimit=KBPSΠεριορισμός χρήσης εύρους ζώνης σε kilobytes ανά δευτερόλεπτο. Χρήσιμο για αντίγραφα ασφαλείας που εκτελούνται κατά τις εργάσιμες ώρες.
--checksumΣυγκρίνετε αρχεία με βάση το άθροισμα ελέγχου αντί για το μέγεθος και την ώρα τροποποίησης. Πιο αργό, αλλά εντοπίζει ακραίες περιπτώσεις.
-e sshΧρησιμοποιήστε SSH για τη μεταφορά. Υπονοείται στις περισσότερες σύγχρονες εγκαταστάσεις.

Η προεπιλεγμένη συμπεριφορά συγκρίνει το μέγεθος του αρχείου και την ώρα τροποποίησης, κάτι που είναι γρήγορο και σχεδόν πάντα σωστό. Μεταβείτε στο --checksum αν μια διαδικασία ανάπτυξης επαναγράφει τις χρονικές σημάνσεις χωρίς να αλλάζει το περιεχόμενο, ή αν υποψιάζεστε αλλοίωση σε επίπεδο bit.

Παραδείγματα Rsync

Αντιγραφή ενός καταλόγου τοπικά:

rsync -av /source/path/ /destination/path/

Συγχρονισμός με απομακρυσμένο διακομιστή μέσω SSH:

rsync -avz /local/dir/ user@remote:/remote/dir/

Δοκιμαστική εκτέλεση πριν από οποιαδήποτε καταστροφική ενέργεια:

rsync -avz --dry-run /local/dir/ user@remote:/dir/

Δημιουργία αντιγράφου ασφαλείας δύο καταλόγων, συμπεριλαμβανομένων των διαγραφών στον προορισμό:

rsync -av --delete /source/ /destination/

Εξαίρεση αρχείων καταγραφής και ενός προσωρινού καταλόγου:

rsync -av --exclude='*.log' --exclude='tmp/' /src/ /dest/

Συνέχιση μιας μεγάλης μεταφοράς που ενδέχεται να διακοπεί:

rsync -avP user@remote:/backups/big.img /local/

Εάν η σύνδεση SSH διακοπεί, εκτελέστε ξανά την ίδια εντολή. Με το -P, το rsync συνεχίζει από το σημείο που σταμάτησε αντί να ξεκινήσει από το μηδέν.

Περιορίστε το εύρος ζώνης στα 50 MB/s για ένα αντίγραφο ασφαλείας εκτός αιχμής, ώστε να μην κορεστεί η ανερχόμενη σύνδεση:

rsync -avz --bwlimit=50000 /local/dir/ user@remote:/dir/

Η παγίδα της τελικής κάθετου

Το πιο συνηθισμένο λάθος στο rsync:

rsync -av /source  /destination/    # copies the 'source' directory INTO /destination
rsync -av /source/ /destination/    # copies the CONTENTS of /source into /destination

Μια τελική κάθετος στην πηγή σημαίνει «όλα μέσα σε αυτόν τον κατάλογο». Χωρίς τελική κάθετο σημαίνει «αυτός ο κατάλογος». Εκτελέστε με --dry-run πρώτα αν δεν είστε σίγουροι, ειδικά όταν συνδυάζεται με --delete.

Αυτοματοποίηση του rsync με το cron

Για προγραμματισμένα αντίγραφα ασφαλείας, χρειάζεστε τρία πράγματα:

  1. Πρόσβαση SSH χωρίς κωδικό πρόσβασης στον προορισμό. Οι εργασίες cron δεν μπορούν να πληκτρολογήσουν κωδικούς πρόσβασης. Δημιουργήστε ένα κλειδί και αντιγράψτε το στον κεντρικό υπολογιστή αντιγράφων ασφαλείας:

    ssh-keygen -t ed25519
    ssh-copy-id user@backup-host
  2. Ένα σενάριο, όχι μια γραμμή στο crontab. Ευκολότερο να δοκιμαστεί, ευκολότερο να καταγραφεί:

    #!/bin/bash
    LOG=/var/log/rsync-backup.log
    rsync -az --delete /etc/ user@backup:/backups/$(hostname)/etc/ >> "$LOG" 2>&1

    Κάντε το εκτελέσιμο με chmod +x.

  3. Μια καταχώριση cron για την εκτέλεσή του. Επεξεργαστείτε με crontab -e:

    0 2 * * * /usr/local/bin/rsync-backup.sh

    Αυτό εκτελεί το σενάριο κάθε βράδυ στις 02:00.

Δύο βελτιώσεις που αξίζει να γίνουν στην παραγωγή: τυλίξτε το σενάριο σε flock έτσι ώστε μια εργασία μακράς διάρκειας να μην επικαλύπτεται με την εκτέλεση της επόμενης νύχτας, και διοχετεύστε την έξοδο μέσω logger ώστε οι αποτυχίες να καταγράφονται στο ημερολόγιο του συστήματος, όπου η παρακολούθηση μπορεί να τις εντοπίσει.

Τελικές σκέψεις

Το Rsync είναι ένα από τα λίγα εργαλεία Linux όπου ο χρόνος που αφιερώνεται στην εκμάθηση των σημαδιών αποδίδει σχεδόν αμέσως. Τα κύρια σημεία:

  • Οι σταδιακές μεταφορές και η υποστήριξη επανεκκίνησης καθιστούν το rsync την κατάλληλη επιλογή για οτιδήποτε εκτελείτε περισσότερες από μία φορές
  • -a για τη λειτουργία αρχειοθέτησης, -z για συμπίεση, -P για συνέχιση και πρόοδο, --delete για πραγματικούς καθρέφτες
  • Προσέξτε την τελική κάθετο στη διαδρομή προέλευσης, ειδικά με --delete
  • Συνδυάστε το με cron και κλειδιά SSH για προγραμματισμένα αντίγραφα ασφαλείας χωρίς παρέμβαση

Για μεγάλες εργασίες δημιουργίας αντιγράφων ασφαλείας που μεταφέρουν δεδομένα μεταξύ εγκαταστάσεων, η εκτέλεση του rsync σε ένα VPS με απεριόριστο εύρος ζώνης σημαίνει ότι τα χρονικά παράθυρα δημιουργίας αντιγράφων ασφαλείας δεν περιορίζονται από όρια μεταφοράς.

Blog

Προτεινόμενα αυτή την εβδομάδα

Περισσότερα άρθρα
Γιατί είναι σημαντικό να έχετε ένα ισχυρό και unmetered VPS

Γιατί είναι σημαντικό να έχετε ένα ισχυρό και unmetered VPS

Ένα unmetered VPS παρέχει σταθερό εύρος ζώνης σε σταθερή ταχύτητα θύρας. Πώς διαφέρει από τα μετρούμενα πακέτα, πότε αποδίδει και τι πρέπει να ελέγξετε πριν από την αγορά.

7 λεπτά ανάγνωσης - 9 Μαΐου 2025

Διαχείριση μνήμης Linux: Swap, OOM Killer & Cgroups

12 λεπτά ανάγνωσης - 31 Μαΐου 2026

Περισσότερα άρθρα
background image

Έχετε ερωτήσεις ή χρειάζεστε μια προσαρμοσμένη λύση

icon

Ευέλικτες επιλογές

icon

Παγκόσμια εμβέλεια

icon

Άμεση ανάπτυξη

icon

Ευέλικτες επιλογές

icon

Παγκόσμια εμβέλεια

icon

Άμεση ανάπτυξη