(Courriels de diversion: <changement@subjugues-parodie.com> <ivres@ensilages-patronnons.com> <consommerai@mâcherent-revendiez.com> <employez@certifies-certifies.com> <blondiraient@desarconneriez-exagerais.com> <dejaunissaient@sympathiserons-enfuirions.com> <agrainer@matelas-murmurerais.com> <ponctualite@rabouter-glucides.com> <moraliserai@parodieras-diables.com> <evase@enonce-ecrirons.com> )
J ai fait un petit script qui me sers a effectuer des sauvegardes au boulot . Il utilise simplement samba et rsync . Il me permet d avoir un roulemnt de sauvegardes sur une semaine ( lundi - vendredi ). Le fichier de conf permet de creer si besoin le rep de save du serveur concerné . Il ne gere pas les supressions de serveur et le delete de celui ci . TODO : - fichier "credential" a ajouter au fichier de conf , pour eviter d avoir le meme compte sur toutes les box - voir si on peut logguer le bilan dans un fichier exploitable par locate - ajouter une option DISK=yes ou TAPE=yes pour envoyer sur un DAT en /dev/tape - plein de trucs :-) Il semble que l insertion des modules nls 850 et 8859-1 et -15 evite bcp de soucis avec les noms de fichiers a espace et accents . A verifier . C est deja tres exploitable et en fonctionnement impec depuis des semaines . Ma conf = 233MMX + 64 Mo de ram + disque systeme 2Go + carte HPT370 + DD Maxtor 80 Go + Debian Woody bf2.4 ( reiserfs ) Voila . Phobos
#!/bin/sh
#Sauvegarde journaliere via rsync et samba .
#
########################################################
USER="un_user_connu"
PASSWD="son_pass"
REP_DE_SAUVEGARDE="/sauvegarde"
POINT_DE_MONTAGE_RESEAU="$REP_DE_SAUVEGARDE/mnt"
FICHIER_DE_CONF="$REP_DE_SAUVEGARDE/conf/sauvegarde.conf"
#syntaxe du fichier de conf :
# chaque ligne commence par le nom du serveur , suivi du ou des partages a sauver jusqu a la fin de ligne .
#Attention aux editeurs style gedit qui coupent a 80 colonnes par defaut ..
#serveur_samba_ou_win1 partage1 partage2 partage-n
#serveur_samba_ou_win2 partage1 partage2 partage-n
#
########################################################
# Ne pas modifier , a priori ..
# LANG necessaire pour avoir les jours en francais independemment du reste
#de la config du systeme . J ai eu des soucis d export pour le root .
LANG=fr_FR.ISO_8859-15; export LANG
LC_ALL=fr_FR ; export LC_ALL
LANGUAGE=fr_FR ; export LANGUAGE
# ca sers a rien mais c est plus joli ..
VERT="\033[32m"
JAUNE="\033[33m"
GRAS="\033[1m"
NORMAL="\033[m"
ROUGE="\033[31m"
VIOLET="\033[35m"
JOURS="lundi mardi mercredi jeudi vendredi"
#il manque a la commande un log plus propre
COMMANDE="rsync -Cav --delete"
JOUR_DE_LA_SEMAINE=`date +%A`
########################################################
while read NOM_SERVEUR LISTES_DES_PARTAGES_A_SAUVER
do
cd $REP_DE_SAUVEGARDE
echo "on verifie que le repertoire du serveur existe , sinon on le cree "
if [ ! -e $REP_DE_SAUVEGARDE/$NOM_SERVEUR ]
then
mkdir $NOM_SERVEUR
echo " le serveur $NOM_SERVEUR n existait pas , il a ete cree "
fi
echo " le serveur $NOM_SERVEUR existait , il n a pas ete cree "
cd $REP_DE_SAUVEGARDE/$NOM_SERVEUR
for repertoire in ${LISTES_DES_PARTAGES_A_SAUVER} ;do
if [ ! -e $REP_DE_SAUVEGARDE/$NOM_SERVEUR/$repertoire ]
then
cd $REP_DE_SAUVEGARDE/$NOM_SERVEUR/
mkdir $repertoire
echo " $repertoire a sauver sur $NOM_SERVEUR n existait pas , il a ete cree "
cd $repertoire
echo "si l arborescence des jours n existe pas , la creer .. On ne teste que le lundi "
if [ ! -e lundi ]
then
for jour in ${JOURS} ;do
echo -e "${GRAS}Creation des jours ${ROUGE}${jour}:${NORMAL}\t\t${VERT}OK${NORMAL}"
mkdir ${jour}
done
else
echo " l arborescence des jours n existe deja"
fi
fi
echo " Sauvegarde "
# umount $POINT_DE_MONTAGE_RESEAU
mount -t smbfs -o username=$USER,password=$PASSWD,ro //$NOM_SERVEUR/$repertoire /$POINT_DE_MONTAGE_RESEAU
echo " commande = mount -t smbfs -o username=$USER,password=$PASSWD,ro //$NOM_SERVEUR/$repertoire /$POINT_DE_MONTAGE_RESEAU "
cd $REP_DE_SAUVEGARDE/$NOM_SERVEUR/$repertoire/$JOUR_DE_LA_SEMAINE
echo "$COMMANDE $POINT_DE_MONTAGE_RESEAU/ $REP_DE_SAUVEGARDE/$NOM_SERVEUR/$repertoire/$JOUR_DE_LA_SEMAINE"
$COMMANDE $POINT_DE_MONTAGE_RESEAU/ $REP_DE_SAUVEGARDE/$NOM_SERVEUR/$repertoire/$JOUR_DE_LA_SEMAINE
cd /
umount $POINT_DE_MONTAGE_RESEAU/
done
echo -e "\n"
done < $FICHIER_DE_CONF
echo " rapport de sauvegarde" | mail $USER@localhost
--------------------------------------------------------------------- Aide sur la liste: <URL:mailto:linux-31-help@CULTe.org>Le CULTe sur le web: <URL:http://www.CULTe.org/>