Εύκολο remote backup (duplicity - duply)

Εύκολο remote backup (duplicity - duply)

Πολλές φορές, χρειάζεται να πάρετε αντίγραφα ασφαλείας, με συγκεκριμένο τρόπο σε συγκεκριμένο μηχάνημα. Μία τέτοια περίπτωση αποτελούν τα backup που προσφέρονται από παροχείς root server ή vps server. Παρακάτω θα δείτε ένα γρήγορο, αρκετά εύκολο τρόπο για να πάρετε backup από κάποιο απομακρυσμένο server σε κάποιο άλλο μηχάνημα με χρήση του πρωτοκόλλου ftp. Το κείμενο αναφέρεται σε Debian 6 (Squeeze)


Αρχικά πρέπει να εγκαταστήσουμε τα απαραίτητα:

apt-get install duplicity duply

Το duplicity είναι ένα πρόγραμμα που σας επιτρέπει να πάρετε backup κρυπτογραφημένα με πολύ εύκολο τρόπο. Η διαδικασία είναι ακόμη πιο εύκολη αν χρησιμοποιήσετε το βοηθητικό πρόγραμμα duply. Το δεύτερο, σας επιτρέπει να δημιουργήσετε profil για κάθε backup και να το εκτελείτε με μία εντολή.

Αφού έγινε η εγκατάσταση πρέπει να δημιουργήσουμε το προφίλ (ένα η περισσότερα ανάλογα με τις ανάγκες μας):

mkdir -p /etc/duply
duply myprofile create

 

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

gpg --gen-key

 

Επιλέξτε (ή διατηρήστε) την πρώτη επιλογή εισάγετε τα ζητούμενα (όνομα, e-mail) εισάγετε μία μεγάλη φράση κωδικού (passphrase) και περιμένετε..... Αν το μήκος που επιλέξατε είναι 2048 (το προεπιλεγμένο), τότε θα πρέπει να περιμένετε αρκετά, μέχρι η εντροπία της μηχανής τυχαίων αριθμών να είναι αρκετή για την δημιουργία του κλειδιού. Για να επιταχύνετε την διαδικασία ανοίξτε ένα ακόμη τερματικό, συνδεθείτε στον server και αρχίστε να κάνετε εργασίες. Όσο πιο 'βαριές' είναι η εργασίες, τόσο πιο γρήγορα θα δημιουργηθεί το κλειδί. Προσωπικά κάνω update στο σύστημα και σε όλα τα sites μέχρι να δημιουργηθεί το κλειδί.

Μόλις είστε έτοιμοι, σημειώστε το κλειδί και την φράση κωδικού γιατί θα τα χρειαστείτε αμέσως μετά καθώς θα επεξεργάζεστε το αρχείο /etc/duply/myprofile/conf :

nano /etc/duply/myprofile/conf

 

Βρείτε και αλλάξτε με αυτά που σημειώσατε λίγο πρίν τα:
GPG_KEY='F3D12A1C'
GPG_PW='My big passphrase with numbers 12334 and symbols ##'


Λίγο παρακάτω επιλέξτε τον προορισμό του backup
TARGET='ftp://user:password@ftp.backup-server.gr/mydir'

όπου
user: το όνομα χρήστη
password: ο κωδικός
ftp.backup-server.gr: ο ftp server
mydir: ο φάκελος στον οποίο θα αποθηκευονται τα backup

Στο ίδιο αρχείο πρέπει να δηλώσετε και ποια δεδομένα θα αποσταλούν κρυπτογραφημένα στον ftp server:
SOURCE='/'

Συνήθως προτιμώ να αποθηκεύω όλο το σύστημα εκτός από κάποιους φακέλους που καταγράφονται στο αρχείο /etc/duply/myprofile/exclude :

nano /etc/duply/myprofile/exclude

 

Για παράδειγμα μπορείτε να εισάγετε τα παρακάτω (για ένα σύστημα Debian)
/proc
/dev
/opt
/sys
/mnt
/media
/lost+found
/tmp
/var/cache/apt
/var/tmp
/var/run
/var/spool
/selinux
/lib/security



Εκτελέστε:

/usr/bin/duply myprofile backup

και τελειώσατε!

ΠΡΟΣΟΧΗ: Μην ξεχάσετε να αποθηκεύσετε το κλειδί και την φράση κωδικού. Επίσης αποθηκεύστε και τα περιεχόμενα του φακέλου /root/.gnupg . Θα τα χρειαστείτε σε περίπτωση που για κάποιο (κακό ή καλό) λόγο χρειαστεί να κάνετε επαναφορά των δεδομένων από το backup σε νέο server.


Λίγες οδηγίες για την συνέχεια:

- Μπορείτε να εξαναγκάσετε ένα πλήρες backup με την εντολή :

duply myprofile full

 

- Μπορείτε να δείτε την κατάσταση ενός προφίλ backup με την εντολή :

duply myprofile status

 

- Μπορείτε να ανακτήσετε (restore) το backup (2 ημερών πρίν) στο φάκελο /restored με την εντολή :

duply myprofile restore /restored 2D

 

- Μπορείτε να ανακτήσετε (restore) ένα μόνο αρχείο (πχ το xyz/file) (3 εβδομάδων πριν) στο φάκελο /restored με την εντολή :

duply myprofile fetch xyz/file /restored 3W

 

- Μπορείτε να βάλετε το cron να εκτελεί τα 'αυξανόμενα' (incremental) backup προσθέτωντας στο cron την εγγραφή:
55 5 * * * root /usr/bin/duply myprofile backup

- Μπορείτε να άλλαξετε το πλήθος των full backup (ανά χρονικό διάστημα) και το μέγεθος του κάθε αρχείου σε κατάλληλα σημεία μέσα στο αρχείο ρυθμίσεων του κάθε προφίλ. Πχ:
VOLSIZE=150
DUPL_PARAMS="$DUPL_PARAMS --volsize $VOLSIZE "
MAX_FULLBKP_AGE=2W
DUPL_PARAMS="$DUPL_PARAMS --full-if-older-than $MAX_FULLBKP_AGE "


- Αν δεν μπορεί να εκτελεστεί το duply δοκιμάστε να προσθέσετε την παρακάτω σειρά στο αρχείο ρυθμίσεων του προφίλ:
DUPL_PARAMS="$DUPL_PARAMS --s3-use-new-style --s3-european-buckets --asynchronous-upload

- Mπορείτε να κάνετε όλα τα παραπάνω για ssh, scp, webdav κτλ

- Μπορείτε να εκτελέσετε εντολές πριν και μετά το duplicity αρκεί να δημιουργήσετε (και να κάνετε εκτελέσιμα) τα αρχεία
/etc/duply/myprofile/pre
/etc/duply/myprofile/post

Για παράδειγμα θα μπορούσατε να γράψετε ένα script που θα κάνει backup όλες τις βάσεις δεδομένων (τότε καλό θα ήταν αν βάλετε στο αρχείο exclude και την διαδρομή /var/lib/mysql)

Για περισσότερα δείτε στα :
http://duplicity.nongnu.org/
http://duply.net/
http://wiki.debian.org/Duplicity
http://www.debian-administration.org/articles/209