Sauvegarde – backup.sh
2008
Un script de sauvegarde lancé via la crontab.
La sauvegarde se fait sur un disque externe USB avec partition NTFS (pour pouvoir lire les infos facilement depuis windows).
Pré-requis :
- ntfs-3g
A faire :
- Sauvegarde sur serveur externe (via FTP notamment).
- Définition de l’arborescence a sauvegarder en variables
#!/bin/sh
#
# variables #
DISQUE_EXTERNE= »/media/hd »
DESTINATION=$DISQUE_EXTERNE »/sauvegarde »
DATE_SAUVEGARDE=`date +%Y.%m.%d_%H.%M`
SAUVEGARDE_SQL=$DESTINATION »/serveur_ »$DATE_SAUVEGARDE »_SAUVEGARDE.sql »
USER_SQL= »backup »
PWD_SQL= »N9b4nBcMHcHLnY8t »
TMP_FILE_MAIL= »/tmp/backup$DATE_SAUVEGARDE.tmp »
EMAIL_DEST= »barthoi@localhost.localdomain »
SUJET= »Backup::$DATE_SAUVEGARDE »
`date > $TMP_FILE_MAIL`
# fonctions #
function montage_samba {
sudo mount $DISQUE_EXTERNE
VERIF_MONTAGE=`cat /proc/mounts | grep « $DISQUE_EXTERNE »`
if [ « $VERIF_MONTAGE » == « » ] ; then
echo « Disque non montï¿œ » >> $TMP_FILE_MAIL
mail -s « $SUJET » $EMAIL_DEST < $TMP_FILE_MAIL
echo « Disque non monté »
exit 1
else
echo « Disque montï¿œ »
fi
}
function demontage_samba {
MONTAGE_verif_1=`cat /proc/mounts | grep « $DISQUE_EXTERNE »`
if [ « $MONTAGE_verif_1 » != « » ] ; then
sudo umount $DISQUE_EXTERNE
# démontage en sudo pour eviter les démontage raté ?
MONTAGE_verif_2=`cat /proc/mounts | grep « $MONTAGE_LOCAL »`
if [ « $MONTAGE_verif_2 » != « » ] ; then
EXIT_ERROR= »Umount Ko »
else
EXIT_ERROR= »Umount Ok »
fi
fi
}
function copie_repertoires {
SOURCE=$1
`sudo cp –update –recursive « $SOURCE » « $DESTINATION »`
#`sudo cp –update –verbose –recursive « $SOURCE » « $DESTINATION »`
}
echo « — debut umount — »
demontage_samba
echo « — fin umount — »
echo « — debut verif mount — »
montage_samba
echo « — fin verif mount — »
echo « — debut copies — »
copie_repertoires /opt/
copie_repertoires /home/partage/Beini/
copie_repertoires /home/partage/Donnees/Archives/
copie_repertoires /home/partage/Donnees/images/
copie_repertoires /home/partage/Benedicte/
echo « — fin copies — »
echo « — debut dump SQL — »
`mysqldump -u $USER_SQL -p$PWD_SQL –all-databases > $SAUVEGARDE_SQL`
echo « — fin dump SQL — »
df -h | grep $DISQUE_EXTERNE >> $TMP_FILE_MAIL
date >> $TMP_FILE_MAIL
mail -s « $SUJET » $EMAIL_DEST < $TMP_FILE_MAIL
rm -rdf $TMP_FILE_MAIL
echo « — debut unmount — »
demontage_samba
echo « — fin unmount — »
exit 0