Με το παρακάτω bash script δημιουργούμε γρήγορα και εύκολα αντίγραφο ασφαλείας ενός απομακρυσμένου φακέλου σε ένα τοπικό μηχάνημα χρησιμοποιώντας SSH και την εντολή rsync. Το Rsync είναι ένα βοηθητικό πρόγραμμα που σας επιτρέπει να μεταφέρετε και να συγχρονίζετε αποτελεσματικά αρχεία μεταξύ δύο καταλόγων, τοπικά ή μέσω σύνδεσης δικτύου.
Χρησιμοποιώντας SSH για σύνδεση με το απομακρυσμένο μηχάνημα και rsync για τον συγχρονισμό και την αντιγραφή των αρχείων, μπορείτε να δημιουργήσετε ένα αντίγραφο ασφαλείας του απομακρυσμένου φακέλου στον τοπικό σας υπολογιστή.
Το script δημιουργεί τον κατάλογο προορισμού στον τοπικό υπολογιστή εάν δεν υπάρχει ήδη και χρησιμοποιεί τη παράμετρο -a για να διατηρήσει τα δικαιώματα του αρχείου, τις χρονικές σημάνσεις και την ιδιοκτησία των αρχείων που μεταφέρονται. Η παράμετρος -v επιτρέπει την verbose ανάλυση εξόδου της εντολής, ώστε να μπορείτε να δείτε την πρόοδο της μεταφοράς και το -z επιτρέπει τη συμπίεση των αρχείων για να επιταχύνετε τη μεταφορά.
#!/bin/bash
# Set variables for the source and destination directories
src_dir=user@remote:/path/to/source/dir
dst_dir=/path/to/local/destination/dir
# Create the destination directory if it does not exist
mkdir -p $dst_dir
# Use rsync to copy the directory from the remote machine to the local machine
rsync -avz -e ssh $src_dir $dst_dir
Το script προϋποθέτει πως έχετε ρυθμίσει ήδη σύνδεση των δύο μηχανημάτων με ssh χωρίς χρήση κωδικού (με SSL κλειδιά)
Σημείωση: Αυτό το script θα δημιουργήσει αντίγραφο των αρχείων του απομακρυσμένου καταλόγου. Δεν θα διαγράψει κανένα αρχείο από τον κατάλογο προορισμού εάν έχει διαγραφεί από τον κατάλογο προέλευσης. Εάν θέλετε να διασφαλίσετε ότι ο κατάλογος προορισμού είναι ακριβές αντίγραφο του καταλόγου προέλευσης, μπορείτε να χρησιμοποιήσετε τη σημαία –delete στο rsync. Αυτό θα διαγράψει τυχόν αρχεία από τον προορισμό που έχουν διαγραφεί από την πηγή.
rsync -avz --delete -e ssh $src_dir $dst_dir
Δημήτρης
.-