Pensez a fixer les deux paramètres pathRepo et pathBackup. Merci de me laisser un commentaire si vous en sentez le besoin.
-
#!/bin/bash
-
# Script de sauvegarde incrémentale d’un dépôt subversion
-
# Il est possible de provoquer une sauvegarde complète en supprimant le dossier version ou son contenu
-
# Paramètres
-
# Chemin du dépôt à sauvegarder
-
pathRepo=“/chemin/repository”;
-
# Chemin du dossier de sauvegarde
-
pathBackup=“/chemin/dossier/sauvegarde”;
-
# Chemin du dossier pour mémoriser la dernière version sauvegardée
-
pathNumVersion=$pathBackup“/version”;
-
# Chemin du fichier de logs
-
pathLog=$pathBackup“/backup.log”;
-
# Nom du fichier (compris entre la date et l’extension)
-
fileName=“backup_svn”;
-
# Format de la date
-
# Pour le nom du fichier
-
dateFileFormat=“+%Y%m%d”;
-
# Pour le log
-
dateLogFormat=“+%Y-%m-%d %H:%M”;
-
# Vérifications
-
# Vérification de l’existence des dossiers de travail
-
if [ ! -d $pathBackup ]; then
-
echo “Dossier $pathBackup inexistant”;
-
exit 1;
-
fi
-
echo “[$(date “$dateLogFormat“)] Début de la sauvegarde” >> $pathLog;
-
# Création du dossier de la version si il n’existe pas
-
if [ ! -d $pathNumVersion ]; then
-
mkdir $pathNumVersion;
-
fi
-
numVersionLastBackup=$(ls $pathNumVersion);
-
if [ “$numVersionLastBackup” = “” ]; then
-
touch “$pathNumVersion/1”;
-
numVersionLastBackup=1;
-
fi
-
if [ $numVersionLastBackup -gt 1 ]; then
-
backupIncremental=” –incremental”;
-
typeBackup=“incr”;
-
else
-
typeBackup=“full”;
-
fi
-
# Vérification de l’existance du dépôt
-
if ! (svnlook info $pathRepo 2>>$pathLog 1>“/dev/null”) ; then
-
echo “[$(date “$dateLogFormat“)] ERREUR : Repository $pathRepo inexistant” >> $pathLog;
-
echo “[$(date “$dateLogFormat“)] Fin de l’exécution – Sauvegarde non effectuée” >> $pathLog;
-
exit 1;
-
fi
-
# Récupération de la dernière version présente dans le dépôt
-
youngestSvnVersion=$(svnlook youngest $pathRepo);
-
echo “[$(date “$dateLogFormat“)] Version la plus récente : $youngestSvnVersion” >> $pathLog;
-
if [ $numVersionLastBackup -gt $youngestSvnVersion ]; then
-
echo “[$(date “$dateLogFormat“)] La version la plus récente est la version sauvegardée, la sauvegarde n’est donc pas nécéssaire” >> $pathLog;
-
echo “[$(date “$dateLogFormat“)] Fin de la sauvegarde” >> $pathLog;
-
exit 0
-
fi
-
# Lancement effectif de la sauvegarde
-
if (svnadmin dump -r$numVersionLastBackup:$youngestSvnVersion$backupIncremental $pathRepo 2>>$pathLog | bzip2 > “$pathBackup/$(date “$dateFileFormat“)_”$fileName“_”$typeBackup“_”$numVersionLastBackup“_to_”$youngestSvnVersion“.svndump.bz2”) ; then
-
echo “[$(date “$dateLogFormat“)] Mise à jour du numéro de version” >> $pathLog;
-
mv $pathNumVersion/$numVersionLastBackup $pathNumVersion/$(($youngestSvnVersion + 1));
-
else
-
echo “[$(date “$dateLogFormat“)] Erreur lors de la sauvegarde” >> $pathLog;
-
echo “[$(date “$dateLogFormat“)] Fin de l’exécution – Sauvegarde non effectuée” >> $pathLog;
-
exit 1;
-
fi
-
echo “[$(date “$dateLogFormat“)] Fin de la sauvegarde” >> $pathLog;
-
exit 0
sox’s tags
administration ajaxterm apache apt apt-file automatize backup bash bell bips bnx2 clock Commande date debian editor EoN eth fat32 firefox gcc grep htaccess https hwconf ifcfg kernel killall linux MAC matériel memoire minimal mount mysql network ntp ntpd package paquet password php psmisc PuTTY quotas RAM regexp repository reseau routage route screensaver script setterm shell shell wifi ssh subversion svn synchronize synergy ubuntu UTF-8 vfat web windows xset