Il existe une infinité de solutions pour faire ses propres archivages.
On a pu d’ailleurs en apprendre quelques-unes avec DigitalSpirit ou Szdavid.
Pour ma part, j’ai d’abord été séduit par Backup-manager mais je cherchais finalement plus simple et 100% de ma composition. Je suis donc parti de ce qu’avait proposé Szdavid…
Nous avons tous nos contraintes et nos possibilités.
Pour ma part, je ne laisse pas l’ordinateur allumé tout le temps, l’éteint le soir avant de me coucher.
Je ne peux donc pas monopoliser les ressources processeurs et disques durant l’archivage. Mais généralement (sauf avec Backup-manager), lors d’archivage, le PC se trouve fortement ralenti…
En revanche, toujours me concernant, je suis à l’aise coté disque dur puisque j’ai 100Go de dédié pour les sauvegardes, sur un disque interne réservé et différent de celui possédant les données importantes.
Enfin, je ne compte donc pas graver de CD ou DVD par manque de confiance… (Expérience faisant !)
« tar », « nice », et « crontab »…
- La commande tar permet d’archiver ou de dés archiver un ou plusieurs fichiers.
Nous utiliserons la commande tar comme ceci:
tar cvpfz « chemin/fichier à créer » –exclude= »chemin à ne pas archiver » « ce qu’on doit archiver »
tar = commande d’archivage
c = création de l’archive
v = mode verbeux, c’est à dire avec affichage d’infos dans le terminal
p = préserve dates et droits
f = définir un nom de fichier d’archivage (sinon périphérique)
z = pour compresser (zipper) l’archive et ainsi gagner un peu d’espace disque
–exclude= -> Permet simplement d’exclure des répertoires de l’archivage (indispensable pour archiver un système).
Exemple (ce qu’on va presque faire):
tar cvpfz /media/Backup/Systeme/racine.tgz --exclude=/proc --exclude=/lost+found --exclude=/home --exclude=/mnt --exclude=/sys --exclude=/media --exclude=/tmp /
Les répertoires /proc , /lost+found , /mnt , /sys , /media , /tmp sont à exclure…
Pour /home, il s’agit d’un choix personnel car j’archive mon « home directory » à part…
Vous l’aurez compris, ici, j’archive la racine du sytème (« /« ).
- La commande nice permet d’exécuter un programme avec une priorité d’ordonnancement modifiée.
Nous utiliserons cette commande ainsi :
nice -n « valeur comprise entre -20 et 19 » `commande à lancer`
-n « valeur comprise entre -20 et 19 » = permet d’ajuster la priorité de la commande dans l’intervalle -20 (le plus prioritaire) à 19 (le moins prioritaire).
Exemple (ce qu’on va faire):
nice -n 19 `tar cvpfz /media/Backup/Systeme/racine.tgz --exclude=/proc --exclude=/lost+found --exclude=/home --exclude=/mnt --exclude=/sys --exclude=/media --exclude=/tmp /`
- La commande crontab permet de définir, pour l’utilisateur qui invoque la commande, les taches à éxecuter par cron. Je rappelle que cron (ou plus exactement crond) est un démon qui lance des commandes et des programmes à des dates et des heures spécifiées.
Crontab s’exécute ainsi:
crontab -l ou -r ou -e
-l = affiche le contenu des fichiers du repertoire cron de l’utilisateur. (En gros les taches à accomplir…)
-r = efface le fichier spécifié du répertoire cron de l’utilisateur (pour supprimer une tache)
-e = permet d’éditer le fichier cron.
Exemple (ce qu’on va faire):
sudo crontab -e
Cette commande ouvre un éditeur en mode texte afin d’éditer le fichier cron.
On execute cette commande avec sudo pour que l’archivage que nous programmerons sera lancé en super-utilisateur (obligatoire pour un accès illimité aux fichiers du système).
On édite ce fichier ainsi :
minute heure jour_du_mois mois jour_semaine commande_à_exécuter
Exemple:
0 20 */10 * * /home/dramces/Sauvegardes/script/Backup.sh >> /media/Backup/Backup.log
Vous remarquerez que l’édition est très souple car on peut adapter « l’échéancier de taches » à notre sauce:
*/10 = N’importe quel jour (*) sur (/) 10 (correspond à tous les 10 jours).
* = N’importe quelle valeur.
Ici, on execute donc un script (script d’archivage que nous verrons plus loin) avec incrémentation (« >> ») d’un journal « Backup.log » (Merci Szdavid !) à 20H00 tous les 10 jours…
Mettons en forme tous cela avec un petit script:
1 – Créez un nouveau fichier texte qui sera votre futur script et pensez à le rendre executable…
Par exemple faites en console:
touch ~/Backup.sh
chmod +x ~/Backup.sh
Puis éditez votre script:
kate (ou gedit) ~/Backup.sh
Voici le script à y copier:
#!/bin/sh
echo "------------------------------------------------" #Pour séparer les évènements dans le journal
echo "Début Sauvegarde: $(date)" #Pour afficher la date et l'heure du début de l'archivage dans le journal
day=`date +%y-%m-%d` #Défini une variable comportant la date du jour
nice -n 19 `tar cvpfz /media/Backup/Systeme/$day.tgz --exclude=/proc --exclude=/lost+found --exclude=/home --exclude=/mnt --exclude=/sys --exclude=/media --exclude=/tmp /` #Commande permettant d'archiver la racine dans un fichier "date du jour".tgz
echo "Fin Sauvegarde: $(date)" #Pour afficher la date et l'heure de la fin de l'archivage
Rien ne vous empeche d’ajouter d’autre commandes d’archivage à la suite… Elles seront éxécutées les unes après les autres… (J’ai fais cela pour la racine (/), le home directory (/home), et toutes mes photos numériques -qu’on à trop souvent l’habitude d’oublier- (/media/photos/canon)…
2 – Editez votre crontab comme vu précédemment
sudo crontab -e
0 20 */10 * * /home/vous/Backup.sh >> /home/vous/
Backup.log
Attention : sudo est imperatif, ce qui fait que vous devez précisez le chemin exact de votre script car si vous utilisez le signe « ~ », le script sera alors cherché dans le répertoire de « root » et non le votre.
3 – Verifiez la présence de la tache programmée…
sudo crontab -l
A vous de rendre vos archivages à votre image et ainsi d’adapter, peut-etre, cette méthode à vos habitudes…
La seule faille de cette methode, en ce qui me concerne une fois de plus, est la nécéssité d’avoir mon système de démarrer le jour J. C’est pourquoi, j’ai inscrit dans le calendrier de « korganizer » les jours de sauvegarde avec alarme (Evènement avec périodicité de tous les 10 jours…).
Bonne sauvegarde !!!
Laisser un commentaire