25 mai 2010

Synchronisation avec rsync

Submitted by jeanr

Bonjour à tous,

j'ai pris l'habitude de ne pas fermer mon portable sans faire la synchronisation du /home avec le /home correspondant dans le disque dur externe... Pour ce faire je me suis inspiré de cette documentation initialement http://doc.ubuntu-fr.org/tutoriel/sauvegarder_home_avec_rsync

J'ai tenu compte également des suggestions qui m'ont été faites lors de la dernière réunion (merci Patrick !).

Voici donc le texte du script ~/Documents/Sauvegardes/sauvegarde_generale2.sh

#!/bin/bash
# Vérifie la présence du volume : le script effectue la vérification du montage de la partition "backup" du disque dur externe usb.
# Si cette partition est montée, l'autre partition de ce même disque externe (qui sert dans ce script
# à la sauvegarde du contenu d'une partition fat32), est forcément montée aussi.
if [ ! -e "/media/backup/" ]
then
echo "Erreur, le volume de sauvegarde est absent."
exit
fi

#titre de lancement de la sauvegarde générale
echo
echo "LA SAUVEGARDE GENERALE EST EN COURS D'EXECUTION"
echo

# pour donner un nom "raccourci" (incluant le chemin) au fichier donnant l'historique des installations,
# mises à jour et désinstallations de paquets, fichier nommé "historique_inst_maj_desinst.log" :
histor=/home/jean/Documents/Sauvegardes/historique_inst_maj_desinst.log

# pour mettre à jour le fichier actualisé de l'historique des installations, mises à jour et désinstallations de paquets :
zgrep -h " installed \| upgrade \| remove " /var/log/dpkg.log* | sort | uniq > $histor

# pour donner un nom "raccourci" (incluant le chemin) au fichier backuperror.log :
backup=/home/jean/Documents/Sauvegardes/backuperror.log

# à noter l'usage des ">" : un seul ">" renvoie le contenu du terminal dans le fichier indiqué en écrasant tout ce que contient déjà ce fichier.
# ">>" renvoie le contenu du terminal sans écraser ce que contient déjà le fichier.
# Le chiffre "2" suivi d'un seul ">" renvoie seulement les messages d'erreurs générés par le processus dans le fichier indiqué
# en écrasant le contenu de ce fichier. "2>>" renvoie les erreurs sans écraser le contenu du fichier.

# Sauvegarde de '/home' vers la partition ext3 du disque dur externe :
sudo rsync -av --del --stats --exclude-from=/home/jean/Documents/Sauvegardes/filter_rules /home/ /media/backup/aksa/ 2> $backup

# Insertion de la date à la fin de la liste d'erreur si le fichier backuperror n'est pas vide (c'est à dire s'il y a des erreurs),
# ce que vérifie l'option "-s" :
if [ -s $backup ]; then
{
date >> $backup
}
fi

#titre de fin de la sauvegarde générale
echo
echo "LA SAUVEGARDE GENERALE EST TERMINEE"
echo

# umount du disque dur :
umount /media/backup
echo "/media/backup démonté !"

# Arrêt de l'ordinateur :
# sudo shutdown -P now

 

Ensuite le contenu du fichier ~/Documents/Sauvegardes/filter_rules avec une nouvelle ligne "- Cache/" pour être quitte du cache de Firefox

# Filter rules for rsync my home

- .thumbnails/

- .Trash/

- *.tmp

- *.iso

- lost+found/

- .cache/

- Cache/

- .beagle/

Enfin, le lanceur modifié pour tenir compte du suffixe .sh du script, voici :

xterm -geometry 170x60 -sb -rightbar -hold -e /home/jean/Documents/Sauvegardes/sauvegarde_generale2.sh

Pour obtenir l'icône du programme grsync, il me faut installer grsync et rechercher l'icône ici :

/usr/share/icons/grsync.png

 

Si vous avez d'autres idées...

That's it folks ! Jean