Sauvegarde – backup.sh

Nov 04
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

Comments are closed.