Ζητήματα rsync αποφυγή διατήρησης backup αχρείαστων αρχείων

Λόγο αναβάθμισης προσπαθώ να κρατήσω backup. Όμως λόγο μείωσης μεγέθους και λόγο ότι έχω πολλά “αχρείαστα” αρχεία συγγεκριμένα έχω:

  • Αρχεία node_modules και vendor από npm και composer τα οποία μπορώ να τα ξανακατεβάσω.
  • Αρχεία στο τελικό δισκο που λαμβάνω backup τα οποία δεν υπάρχουν πλέον στον κανονικό δίσκο.

Ως εκ τούτου θέλω τα αρχεία αυτά να μπορώ να τα σβήνω. Τα αρχεία τα κρατώ στο αρχείο ~/rsyncFolders.txt και λαμβάνω backup ως εξής:

Δίνω την εντολή:

cd ~
rsync -ravdPhH --delete --files-from=/home/pcmagas/ . /media/disk/backup/pcmagas

Ενώ στον φάκελο ~/Kwdikas κρατώ ότι σχετικό με κώδικα. Εκεί μπορεί να έχει μια χαοτική δομή αλλά κάθε φάκελος που θα έχει κώδικα χρήσιμο θα είναι σε ένα .git αποθετήριο ως εκ τούτου θέλω ότι είναι στο .gitignore να μην είναι εντός του backup φακέλου.

Προσωπικά χρησιμοποιώ το unison για να κρατάω καταλόγους συντονισμένους, όπου έχεις καλύτερο έλεγχο και εποπτεία του rsync.

Αλλά μήπως πας να λύσεις λάθος πρόβλημα; Αν έχεις αποθετήρια η λύση είναι ακριβώς τα αποθετήρια. Βάζεις στο αποθετήριο αυτά που θέλεις και αγνοείς (πχ με το .gitignore) αυτά που δεν θέλεις. Έχεις και ένα git remote και τα κρατάς συντονισμένα.

Μπορείς και τοπικά στον υπολογιστή να το έχεις αυτό, δεν θέλεις αναγκαστικά ένα τρίτο server, (που μπορείς να έχεις ένα από €2.99 το μήνα από την scaleway). Το Gitea είναι ίσως η ευκολότερη υπηρεσία για να στήσεις και μπορεί να δείχνει σε ένα εξωτερικό δίσκο.

Βασικά έχω Bitbucket και github όμως θα ήθελα και σαν δευτερεύων backup να τα έχω τοπικά as well.

Η προεπιλεγμένη λειτουργία της rsync είναι να κάνει incremental backups. Δηλαδή, πάνω-κάτω, αυτό που περιγράφεις. Πηγή

Βασικά η εντολή που χρειάζεσαι είναι μια σαν τη παρακάτω:
To --log-file δεν είναι απαραίτητο, μόνο αν θέλεις να παρακολουθείς τι γίνεται.

rsync -aAXv --log-file=/home/$user/rsync.log /path/to/source /path/to/dest

1 «Μου αρέσει»

Ρίξε και μια ματιά στο πρόγραμμα του Τρίτωνα από το insomnia