- Modifié
ATTENTION : Pensez à mettre à jour les scripts régulièrement avec la commande suivante (Ne faites pas un simple git pull sinon vous allez devoir refaire l'installation...) :
# Exécuter cette commande avec le compte root
cd /opt/full-backup && git stash && git pull && git stash pop
# Puis exécuter le script de sauvegarde pour vérifier que ça fonctionne
/opt/full-backup/backup.sh
Dernière mise à jour : 02/08/2015 à 22:58:52
Liste des modifications : https://github.com/hardware/full-backup/commits/master
Sauvegarde et restauration d'un système sous Linux
Il y a quelques mois, j'ai développé deux petits scripts pour mon usage personnel permettant de sauvegarder et de restaurer mon système rapidement sans prise de tête. Ça fait maintenant quelques temps que je les utilises, pour mon utilisation (serveur web/dns, serveur mail et seedbox) ça fonctionne très bien. C'est donc pour cette raison que je veux partager ces scripts avec vous.Le système est très simple, le script de sauvegarde permet de créer une archive intégrale votre système, vous pouvez bien sûr choisir d'exclure des répertoires/fichiers pour éviter d'avoir une sauvegarde trop volumineuse. Ensuite l'archive est envoyée sur un serveur FTP distant.
Le script de restauration récupère cette archive via FTPS (ou par FTP, mais je le déconseille) et la décompresse à la racine du système. Donc le jour où vous avez un gros pépin avec votre serveur, vous avez juste à récupérer et exécuter le script de restauration, à sélectionner l'archive que vous souhaitez, ensuite le script de restauration se charge de récupérer la sauvegarde, de vérifier son authenticité (pour s'assurer que personne à modifié votre archive) et son intégrité (pour éviter d'appliquer une archive corrompue/altérée pendant le transfert) et de restaurer toutes vos données.
- Durée de sauvegarde : 5/10 minutesLe but de ce tutoriel est de vous présenter un système de sauvegarde simple à mettre en place avec une procédure de restauration clé en main. Si vous cherchez un système de sauvegarde plus complet et plus souple que celui présenté dans ce tuto, n'hésitez pas à aller voir le tutoriel d'ex_rat sur Backup-Manager ici : http://mondedie.fr/d/5834
- Durée de restauration : 5/10 minutes
La durée varie en fonction de la volumétrie des données à sauvegarder et de la bande passante entre votre serveur et le serveur FTP.
Installation
Mettre à jour le serveur et télécharger Git si ce n'est pas déjà fait :
apt-get update && apt-get dist-upgrade
apt-get install git-core
Télécharger les scripts depuis le dépôt Github puis lancer le script d'installation :cd /opt
git clone https://github.com/hardware/full-backup.git
cd full-backup
chmod +x *.sh && ./install.sh
Script d'installationLe script installe quelques pré-requis pour le bon fonctionnement du script de sauvegarde. Ensuite il faut saisir les paramètres de connexion du serveur FTP. Certains hébergeurs comme OVH et Online.net fournissent un espace de stockage FTP, si vous êtes dans ce cas, vous pouvez récupérer vos identifiants de connexion via l'interface de votre hébergeur.


On va créer une clé avec un chiffrement de type RSA d'une longueur de 2048 bits sans expiration :
Please select what kind of key you want:
(1) RSA and RSA (default)
(2) DSA and Elgamal
(3) DSA (sign only)
(4) RSA (sign only)
Your selection? 1
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048) 4096
Requested keysize is 4096 bits
Please specify how long the key should be valid.
0 = key does not expire
<n> = key expires in n days
<n>w = key expires in n weeks
<n>m = key expires in n months
<n>y = key expires in n years
Key is valid for? (0) 0
Key does not expire at all
Is this correct? (y/N) y
Ensuite saisissez des informations (votre nom ou le nom d'hôte de votre serveur) qui vous permettront d'identifier la clé à l'avenir :You need a user ID to identify your key; the software constructs the user ID
from the Real Name, Comment and Email Address in this form:
"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"
Real name: John Doe
Email address: john.doe@domain.tld
Comment:
You selected this USER-ID:
"John Doe"
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? e
Email address: john.doe@domain.tld
You selected this USER-ID:
"John Doe <john.doe@domain.tld>"
Il ne vous reste plus qu'à définir le mot de passe de la clé privée. Retenez bien ce mot de passe, le script vous le demande juste après :
Votre système est maintenant prêt à être sauvegardé ! Exécuter le script de sauvegarde avec la commande suivante
./backup.sh

# crontab -e
0 0 * * 0 /opt/full-backup/backup.sh
Dans cet exemple, le script s'exécute tous les dimanches à minuit
Si un problème survient pendant l'exécution du script de sauvegarde, vous en serez informé par email à l'adresse que vous avez indiqué pendant l'étape d'installation. Le fichier de log peut-être consulté via cette commande :cat /var/log/backup.log | less -r
Script de restaurationBon, faut se mettre en situation (scénario improbable

Imaginez qu'un mini astéroid se détache de la ceinture de Kuiper pour venir s'écraser sur la baie contenant votre serveur, ce qui l'endommage de manière irréversible. Vous perdez donc toutes vos données, vos fichiers de configurations...etc absolument tout est perdu. Mais heuresement, vous avez effectué une sauvegarde complète de votre serveur quelques jours avant avec le script de sauvegarde, donc tout n'est pas finit ! Ouf

Donc dans cette situation, on démarre sur un serveur tout neuf avec un système vierge. Il faut récupérer le script de restauration et relancer l'installation du système de sauvegarde :
apt-get update && apt-get dist-upgrade
apt-get install git-core
cd /opt
git clone https://github.com/hardware/full-backup.git
cd full-backup
chmod +x *.sh && ./install.sh
Puis :./restore.sh
La procédure de restauration reste très simple :
Exemple avec une restauration locale :


--------------------------------------------------------------------------------------------------------------