#!/bin/sh
#Sauvegarde de tous les fichiers mentionnes en fin du script
#dans un repertoire $REP_SAUV et cree un tar.bz2 chaque jour et chaque
mois
#en conservant deux archives quotidennes et mensuelles
#Fait egalement une copie sur une machine distante (serveur)
#variables
#Repertoire ou les fichiers sont copies (sans etre compresses)
REP_SAUV="/home/sauve"
#Repertoire personnel
REP_PERSO="/home/toto"
#Repertoires ou sont stockes les archives
DATE=$(date +%y%m%d)
if [ "$1" = "-m" ] ; then
REP_TAR="/home/tar/monthly"
INTITUL="Sauvegarde mensuelle"
else
REP_TAR="/home/tar/daily"
INTITUL="Sauvegarde quotidienne"
fi
#Repertoire sur une machine distante pour copier les archives
#par ssh (scp)
REP_DIST="machine1:/home/sauve-dist"
####################################################
echo "Sauvegarde en cours..."
cd $REP_TAR
#Vide le repertoire de sauvegarde
rm -rf $REP_SAUV/*
#Prepare le fichier de logs
if [ -e tar.log ] ; then
mv -f tar.log tar.log.old
fi
echo "-------------------------------------------------">>tar.log
echo "Sauvegarde du `date +%A" "%d" "%B" "%Y" -
"%T`">>tar.log
echo "$INTITUL">>tar.log
echo "-------------------------------------------------">>tar.log
echo "suppr : OK">>tar.log
# Fonctions
######################
function backup() {
#Creation des repertoires
CIBLE=$REP_SAUV${1%/*}/
if test ! -d $CIBLE
then
mkdir -p $CIBLE
fi
#copie les fichiers
cp -R $1 $CIBLE
}
function backupsql() {
#sauvegarde ne base sql
echo $REP_SAUV/$3.sql >> tar.log
mysqldump -u $1 -p$2 $3 > $REP_SAUV$3.sql
}
function menage() {
for MYFILE in `find $1 -name "sauve*" | sort`;do
NB=`find $1 -name "sauve*" | sort | wc -l`
if (( $NB >= 3 ));then
rm -f $MYFILE
fi
done
}
####################################
#Choisissez ci-dessous les repertoires
#ou fichiers a sauvegarder
####################################
backup /etc/hosts
backup /etc/samba
#scripts d'admin
backup /root/bin
#backup des infos de mail
backup $REP_PERSO/.mozilla-thunderbird
#Sauvegarde des sous-repertoires du
#repertoire perso finissant par -s
for REPER in `find $REP_PERSO/ -name "*-s" | sort`;do
backup $REPER
done
#sqldump des bases mysql
#backupsql identifiant password nomdelabdd
#Cree le tar
ls -lRa $REP_SAUV>>tar.log
tar -cjf sauve_$DATE.tar.bz2 $REP_SAUV 2>>tar.log
scp $REP_TAR/sauve_$DATE.tar.bz2 $REP_DIST/ 2>>tar.log
#Limite le nombre de sauvegardes
menage $REP_TAR/
#Fin du script ok
echo "-------------------------------------------------">>tar.log
echo "`date +%A" "%d" "%B" "%Y" - "%T`">>tar.log
echo "Fin de sauvegarde">>tar.log
echo "-------------------------------------------------">>tar.log
echo "fin du script $0 : OK">>tar.log