Dans des précédents billet nous avons vu comment créer un projet Subversion et comment installer Trac. Cette fois je vais vous expliquer comment je sauvegarde toutes ces précieuses données automatiquement.
- Création d'un script shell à adapter selon vos besoins
- Uploader le fichier sur votre serveur
- Donner les droits d'exécution au fichier
- Ajouter le script à un job cron afin d'automatiser son exécution à intervalles réguliers
TIMESTAMP=`date +%Y-%m-%d`
#répertoire de sauvegarde pour Subversion
DUMPDIR=$HOME/backup_dir/dump_svn
#répertoire de sauvegarde pour Trac
HOTCOPYDIR=$HOME/backup_dir/trac_backup
#répertoire du repository Subversion
REPOSVN=$HOME/svndir
#répertoire des projets Trac
TRACPROJDIR=$HOME/trac_dir
#adresse email pour l'envoi des sauvegardes
MAIL=unmail@gmail.com
# les variables d'environnements ne sont pas disponibles
# dans les cronjobs chez Dreamhost, on spécifie celles dont on aura besoin pour trac
export PYTHONPATH=/home/user/packages/lib/python2.3/site-packages
export LD_LIBRARY_PATH=/home/user/packages/lib
export PATH=/home/user/packages/bin:$PATH
#dump du repository svn
svnadmin dump $REPOSVN/projet1 > $DUMPDIR/$TIMESTAMP.projet1.dump
svnadmin dump $REPOSVN/projet2 > $DUMPDIR/$TIMESTAMP.projet2.dump
#hotcopy des projets trac
trac-admin $TRACPROJDIR/projet1 hotcopy $HOTCOPYDIR/$TIMESTAMP.projet1
trac-admin $TRACPROJDIR/projet2 hotcopy $HOTCOPYDIR/$TIMESTAMP.projet2
#compression du dump
tar cjf $DUMPDIR/$TIMESTAMP.projet1.dump.tar.bz2 $DUMPDIR/$TIMESTAMP.projet1.dump
tar cjf $DUMPDIR/$TIMESTAMP.projet2.dump.tar.bz2 $DUMPDIR/$TIMESTAMP.projet2.dump
#compression des hotcopy trac
tar cjf $HOTCOPYDIR/$TIMESTAMP.projet1.tar.bz2 $HOTCOPYDIR/$TIMESTAMP.projet1
tar cjf $HOTCOPYDIR/$TIMESTAMP.projet2.tar.bz2 $HOTCOPYDIR/$TIMESTAMP.projet2
#nettoyage
rm -rf $DUMPDIR/$TIMESTAMP.*.dump
rm -rf $HOTCOPYDIR/$TIMESTAMP.projet1
rm -rf $HOTCOPYDIR/$TIMESTAMP.projet2
find $DUMPDIR -mtime +30 -exec rm {} \;
find $HOTCOPYDIR -mtime +30 -exec rm {} \;
#envoi des fichiers par mail
mutt -s "dump svn" \\
-a $DUMPDIR/$TIMESTAMP.projet1.dump.tar.bz2 \\
-a $DUMPDIR/$TIMESTAMP.projet2.dump.tar.bz2 \\
$MAIL < /dev/null
mutt -s "hotcopy trac" \\
-a $HOTCOPYDIR/$TIMESTAMP.projet1.tar.bz2 \\
-a $HOTCOPYDIR/$TIMESTAMP.projet2.tar.bz2 \\
$MAIL < /dev/null
chmod +x nomdufichierChez l'hébergeur Dreamhost on peux désormais faire ça facilement via le panel d'administration dans le menu "Goodies/Cron jobs".
Voilà c'est fini, vous pouvez de temps en temps faire le ménage dans les répertoires de sauvegarde sur le serveur.
Bon je ne suis pas fort en Shell on doit pouvoir faire beaucoup mieux, mais ça marche aussi comme ça ;)

