Raspberry Pi | Οι καλύτεροι τρόποι για να κάνουμε backup από μερικά αρχεία μέχρι ολόκληρα project


Έχουμε μόλις "ξύσει την επιφάνεια" σχετικά με το τι μπορεί να κάνει το Raspberry Pi και βλέπουμε ήδη ότι το στήσιμο ενός ολοκληρωμένου project είναι λίγο έως πολύ περίπλοκο. Πέρα από το λειτουργικό σύστημα, πρέπει κάθε φορά να κάνουμε τις βασικές μας ρυθμίσεις, να εγκαθιστούμε προγράμματα και εξαρτήσεις, ενώ υπάρχει πάντα και το θέμα των δικών μας δεδομένων που θα προστεθούν κατά τη χρήση. Πρέπει λοιπόν να γνωρίζουμε μερικούς τρόπους για να κάνουμε backup, έτσι ώστε να μπορούμε να επαναφέρουμε τα πάντα σε περίπτωση που κάτι πάει στραβά.


Γιατί όμως χρειάζεται να κάνουμε backup; Το συνηθέστερο πρόβλημα είναι όταν σε μια διακοπή ρεύματος, το Raspberry Pi θα κλείσει, ενώ η microSD του είναι σε χρήση από το σύστημα. Αυτό έχει ως αποτέλεσμα να καταστραφούν τα αρχεία που βρίσκονται στην κάρτα και να μη λειτουργεί τίποτα, όταν προσπαθήσουμε να το ενεργοποιήσουμε ξανά. Υπάρχουν διάφοροι τρόποι για να κάνουμε backup και θα πρέπει να επιλέξουμε τον σωστό ανάλογα με το project που έχουμε δημιουργήσει.

Ο απλός τρόπος: Συμπιέζουμε το φάκελο "Home"


Ο πιο απλός τόπος για να κάνουμε backup, είναι να συμπιέσουμε το φάκελο "Home", ο οποίος περιλαμβάνει όλα τα προσωπικά μας αρχεία και να αποθηκεύσουμε το τελικό αρχείο σε έναν εξωτερικό δίσκο. Ο τρόπος αυτός είναι γρήγορος και εύκολος, αλλά δεν περιλαμβάνει το λειτουργικό σύστημα, καθώς και τα προγράμματα που έχουμε εγκαταστήσει. Για να επαναφέρουμε το backup λοιπόν, θα πρέπει να εγκαταστήσουμε ξανά το Raspbian (ή οποιαδήποτε Linux διανομή χρησιμοποιούμε) και να αποσυμπιέσουμε το αρχείο μας εκεί. Ενδείκνυται λοιπόν στις περιπτώσεις που χρησιμοποιούμε το Pi σαν απλό υπολογιστή.

Για να κάνουμε κάτι τέτοιο αν έχουμε στη διάθεσή μας το γραφικό περιβάλλον του Raspbian, ανοίγουμε τον διαχειριστή αρχείων του λειτουργικού μας συστήματος και κάνουμε δεξί κλικ στο φάκελο "Home". Στη συνέχεια επιλέγουμε "Συμπίεση" (Compress), του δίνουμε ένα όνομα και διαλέγουμε την κατάληξη την οποία θέλουμε να έχει το αρχείο μας (συνήθως "tar.gr").



Αυτό γίνεται και από το τερματικό, για όσους θέλουν να το κάνουν απομακρυσμένα μέσω SSH, με την εντολή να είναι η εξής:

sudo tar -cvfz backup.tar.gz /home

Το αποτέλεσμα θα είναι το αρχείο "backup.tar.gz", το οποίο στη συνέχεια μεταφέρουμε σε ένα USB στικάκι για φύλαξη.



Αυτή η απλή διαδικασία μπορεί να γίνεται αυτόματα με το Cron, μία εφαρμογή που μας επιτρέπει να κάνουμε περιοδικές εργασίες ανά τακτά χρονικά διαστήματα. Το Cron και τις λειτουργίες του όμως θα τα δούμε σε επερχόμενο άρθρο.

Διαφήμιση


Ο έξυπνος τρόπος: Συγχρονίζουμε τα αρχεία μας με έναν εξωτερικό δίσκο χρησιμοποιώντας το rsync


Ας πούμε τώρα ότι οι αλλαγές που κάνουμε στο project μας ανάμεσα σε κάθε backup, είναι ελάχιστες. Είναι βλακεία λοιπόν να συμπιέζουμε κάθε φορά το φάκελο χρήστη, για να δημιουργήσουμε το συμπιεσμένο αρχείο μας. Σε αυτές τις περιπτώσεις χρησιμοποιούμε το rsync, ένα πρόγραμμα το οποίο συγχρονίζει με έναν εξωτερικό δίσκο, μόνο τις αλλαγές που έχουμε κάνει στο σύστημά μας!

Με το rsync λέμε στην ουσία στο σύστημα να πάρει τους φακέλους και τα αρχεία μας και να τα αντιγράψει σε έναν εξωτερικό δίσκο. Μετά την πρώτη φορά όμως, κάθε φορά που τρέχουμε το rsync, η εφαρμογή τσεκάρει και αντιγράφει μόνο τις αλλαγές που έχουμε κάνει! Έτσι αν έχουμε δημιουργήσει ένα αρχείο, θα μεταφερθεί και στο backup μας. Αν επίσης επεξεργαστούμε ένα αρχείο, η νέα του έκδοση θα αντικαταστήσει την παλιά στο backup, ενώ αν διαγράψουμε ένα αρχείο, θα διαγραφεί και αυτό από το backup.

Για να κάνουμε λοιπόν backup ολόκληρο το φάκελο χρήστη με το rsync, η εντολή που πρέπει να δώσουμε είναι η εξής:

sudo rsync -aHv /home /mnt/οΔίσκοςΜου

Εννοείται ότι αντικαθιστούμε το "/οΔίσκοςΜου" με τη διαδρομή που έχει ο δικός μας USB δίσκος όταν τον βάζουμε στο Raspberry Pi.


Ο τρόπος με τον οποίο λειτουργεί το rsync μας επιτρέπει επίσης να κάνουμε backup και σε εφαρμογές, ρυθμίσεις ή αρχεία συστήματος, αρκεί να συμπεριλάβουμε τους αντίστοιχους φακέλους που τα περιέχουν. Θα μπορούσαμε θεωρητικά να του πούμε να πάρει backup από ολόκληρο το ριζικό φάκελο ("/"), αλλά αυτό σημαίνει ότι θα συμπεριλάβει αρχεία που δεν τα χρειαζόμαστε.

Για παράδειγμα στο φάκελο "/tmp" αποθηκεύονται προσωρινά αρχεία του συστήματος, τα οποία δε μας εξυπηρετούν σε κάτι. Κάνοντας backup λοιπόν σε αυτό το φάκελο, απλά θα καθυστερήσουμε την ολοκλήρωση της διαδικασίας. Επίσης ο φάκελος "/mnt" είναι εκεί όπου προσαρτώνται οι δίσκοι που έχουμε συνδέσει μέσω USB. Αν δεν τον εξαιρέσουμε λοιπόν, το rsync θα πάρει backup και από τα περιεχόμενα αυτών των δίσκων. Backup στο backup δηλαδή!!! Το πρόβλημα αυτό λύνεται εύκολα, δημιουργώντας ένα αρχείο στο οποίο δηλώνουμε τους φακέλους που θέλουμε να αποκλειστούν από το rsync.

Πηγαίνουμε λοιπόν στο φάκελο "Home" και δημιουργούμε το αρχείο "nobackup.txt" (μπορούμε να χρησιμοποιήσουμε οποιαδήποτε ονομασία θέλουμε). Εκεί αποθηκεύουμε τα ακόλουθα, τα οποία είναι οι φάκελοι που δε θέλουμε να κάνουμε backup:

/proc/*
/sys/*
/dev/*
/boot/*
/tmp/*
/run/*
/mnt/*
/media/*


Για να πάρουμε λοιπόν backup με το rsync, εξαιρώντας τα περιεχόμενα του "txt" αρχείου, δίνουμε την εντολή:

sudo rsync -aHv --delete --exclude-from=/home/nobackup.txt / /mnt/οΔίσκοςΜου/

Σημειώστε ότι χρησιμοποιούμε το δείκτη "--delete", ο οποίος διαγράφει από το backup μας, τα αρχεία που έχουμε διαγράψει και στο Pi. Κρατάει δηλαδή ένα πιστό αντίγραφο των φακέλων του. Αν θέλουμε να αποθηκεύονται τα πάντα στο δίσκο μας, γιατί ενδέχεται να χρειαστούμε ένα αρχείο που έχουμε διαγράψει, τότε δε συμπεριλαμβάνουμε το συγκεκριμένο δείκτη.

Για να κλείσουμε με το rsync, αν κάτι πάει στραβά στο Raspberry Pi και χρειάζεται να επαναφέρουμε το backup, το μόνο που χρειάζεται να δώσουμε είναι η εντολή:

sudo rsync -av --delete-during /mnt/οΔίσκοςΜου/ /

Και το backup μέσω rsync μπορεί να αυτοματοποιηθεί χρησιμοποιώντας το Cron.

Ο εύκολος τρόπος: Χρησιμοποιούμε το Deja Dup από το γραφικό του περιβάλλον


Οι δύο πρώτοι τρόποι που αναφέραμε, προϋποθέτουν να ασχοληθούμε λιγάκι και με το Cron, για να τους αυτοματοποιήσουμε. Αν λοιπόν είμαστε αρχάριοι ή δεν έχουμε όρεξη για πολλά πολλά, υπάρχει η πανεύκολη λύση του Deja Dup.

Το Deja Dup είναι μία εφαρμογή με κανονικά παράθυρα και επιλογές, η οποία δε σε βάζει στη διαδικασία να θυμάσαι σειρές από εντολές. Το μενού της είναι απλό, καθαρό και εύχρηστο και περιλαμβάνει όλα όσα χρειαζόμαστε. Μας δίνει τη δυνατότητα να επιλέξουμε τους φακέλους που θέλουμε να σώσουμε ή αυτούς που δε θέλουμε να συμπεριληφθούν στο backup. Μπορούμε επίσης να επιλέξουμε εύκολα την τοποθεσία στην οποία θέλουμε να γίνεται ο συγχρονισμός, ενώ μας προσφέρει και τη δυνατότητα να ρυθμίσουμε περιοδικά αυτόματα backup.

Στην πραγματικότητα το Deja Dup χρησιμοποιεί το rsync για να κάνει τη δουλειά του, οπότε αν έχουμε λειτουργικό σύστημα με γραφικό περιβάλλον στο Pi μας, είναι η προτεινόμενη λύση.


Διαφήμιση


Ο καλύτερος τρόπος: Δημιουργούμε ένα image αρχείο της microSD κάρτας


Η ουσία του backup είναι αφενός να αποθηκεύεις σωστά τα αρχεία σου σε ένα ασφαλές μέρος και αφετέρου να μπορείς να τα επαναφέρεις άμεσα. Από την παραπάνω φράση κρατήστε το "σωστά" και το "άμεσα" και θα καταλάβετε γιατί η δημιουργία ενός image αρχείου είναι η καλύτερη λύση.

Όσον αφορά το "σωστά", μας έχει τύχει αρκετές φορές να θέλουμε να επαναφέρουμε ένα backup μέσα από συμπιεσμένο αρχείο, αλλά όταν πήγαμε να το ανοίξουμε, το λειτουργικό σύστημα μας ενημέρωσε ότι το αρχείο αυτό είναι κατεστραμμένο! Δοκιμάσαμε επίσης σε αρκετές περιπτώσεις και το rsync, το οποίο σε κάποια συστήματα κολλούσε κατά τη διαδικασία του πρώτου backup, ενώ σε άλλα δεν έτρεχε στα τακτά χρονικά διαστήματα που του είχαμε ορίσει. Τα backup μας λοιπόν δε γίνονταν σωστά κι έτσι χάσαμε τα πολύτιμα αρχεία μας για πάντα.

Όσον αφορά τώρα το "άμεσα", χρησιμοποιήσαμε το rsync και το Deja Dup για να επαναφέρουμε ένα backup. Χρειάστηκε πρώτα να εγκαταστήσουμε ξανά το Raspbian, να κάνουμε και πάλι τις αρχικές μας ρυθμίσεις και γενικά να το σετάρουμε από την αρχή. Η όλη διαδικασία μας πήρε λίγες ώρες, αν συμπεριλάβουμε και το χρόνο που χρειάστηκε το ίδιο το Deja Dup για να φέρει πίσω τα αρχεία μας, αλλά όταν έχεις μία υπηρεσία σαν το Nextcloud να σε περιμένει για να συνεχίσεις τη δουλειά σου, αυτό δεν είναι επιτρεπτό.

Καταλήξαμε λοιπόν στη λύση της δημιουργίας ενός image αρχείου της microSD κάρτας, το οποίο είναι στην ουσία μία "φωτογραφία" του συστήματος εκείνη τη στιγμή, την οποία μπορείς να επαναφέρεις και να συνεχίσεις από εκεί που σταμάτησες.

Τα πλεονεκτήματα αυτής της μεθόδου backup είναι τα εξής:

  1. Όλα μας τα αρχεία αποθηκεύονται σε ένα μοναδικό αρχείο, το οποίο είναι ευκολότερο να μεταφερθεί και να αποθηκευτεί.
  2. Σε αυτό το αρχείο περιλαμβάνεται ολόκληρο το λειτουργικό σύστημα, οπότε αν το χρειαστούμε, μπορούμε να το χρησιμοποιήσουμε άμεσα.
  3. Στο αρχείο περιλαμβάνονται επίσης οι ρυθμίσεις, οι εφαρμογές, οι λογαριασμοί μας, οι βάσεις δεδομένων και όλα όσα είχαμε μέσα, οπότε δε χρειάζεται να σετάρουμε τίποτα από την αρχή.
  4. Η επαναφορά γίνεται με ένα κλικ και σε λίγα μόλις λεπτά, οπότε αν συμβεί κάτι μπορούμε άμεσα να αποκαταστήσουμε τον υπολογιστή μας.

Υπάρχουν όμως και κάποια μειονεκτήματα:


  1. Η διαδικασία αυτή δε γίνεται αυτόματα, αφού προϋποθέτει να βγάλουμε τη microSD κάρτα από το Raspberry Pi και να τη βάλουμε σε έναν άλλο υπολογιστή για να κάνουμε τη διαδικασία.
  2. Το αρχείο που θα δημιουργηθεί είναι ίσου μεγέθους με την κάρτα, άσχετα αν αυτή είναι άδεια. Αυτό σημαίνει ότι αν χρησιμοποιούμε μία κάρτα μεγέθους 32GB, το αρχείο image θα έχει το ίδιο μέγεθος, οπότε η μέθοδος δεν ενδείκνυται για μεγάλες χωρητικότητες.

Παρά τα μειονεκτήματα όμως, το θετικό είναι ότι με αυτή τη μέθοδο έχουμε τον έλεγχο των backup. Ξέρουμε για παράδειγμα ότι δυο φορές το μήνα το backup έχει γίνει σωστά, γιατί το κάναμε χειροκίνητα. Δεν είναι όμως λίγες οι φορές που ακόμη και το image αρχείο καταστρέφεται, οπότε δεν μπορούμε να το χρησιμοποιήσουμε για επαναφορά. Για αυτό το σκοπό χρησιμοποιούμε δύο κάρτες microSD ως έξτρα μέτρο ασφαλείας.


Τι κάνουμε λοιπόν; Απενεργοποιούμε το Pi, βγάζουμε την κάρτα και τη βάζουμε σε έναν άλλο υπολογιστή. Χρησιμοποιούμε το Win32 Disk Imager στο Windows ή το Gnome Disks στο Linux για να δημιουργήσουμε το image αρχείο μας. Στη συνέχεια αφαιρούμε την πρώτη κάρτα από τον υπολογιστή, συνδέουμε τη δεύτερη και με το ίδιο πρόγραμμα εγκαθιστούμε το image σε αυτήν. Βάζουμε τέλος τη δεύτερη κάρτα στο Pi για να δούμε αν όλα πήγαν καλά και την αφήνουμε εκεί μέχρι το επόμενο backup.

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

Σχόλια

Δείτε επίσης...

Android | Γιατί δε θα αγόραζα ποτέ smartphone της OnePlus

Φεύγω από την Google (μέρος 15) | ''Ξηλώνουμε'' τα Google apps από το Android

Ιδιωτικό απόρρητο | Το αφελές επιχείρημα του ''Δεν έχω τίποτα να κρύψω''

Docker (μέρος 7) | Στήνουμε έναν reverse proxy για τα container μας με το Traefik

Μάθε παιδί μου Linux (μέρος 11) | Δίσκοι, κατατμήσεις και σύστημα αρχείων (filesystem)

Ubuntu Touch 2020 review | Μια πραγματική mobile GNU/Linux διανομή έτοιμη για καθημερινή χρήση

Android | Περιόρισε την παρακολούθηση των εφαρμογών και κόψε τις διαφημίσεις με το TrackerControl

Απόρρητο | ''Μπερδεύουμε'' τον αλγόριθμο Google και Facebook με ψεύτικες πληροφορίες

Docker (μέρος 1) | Τι είναι και πώς το εγκαθιστούμε στον υπολογιστή μας;

Android | Βάλε στην ''απομόνωση'' τις εφαρμογές που δεν εμπιστεύεσαι με το Shelter