Catégorie blog - posté le 24/08/09 17:58:29
Catégorie linux - posté le 30/01/09 16:27:48
Catégorie Tutorial - posté le 26/10/08 15:18:43
$ svnadmin create /var/opt/svn/backup
$ cd /etcNotre repository étant vide cela nous a juste crée un dossier .svn a la racine du dossier /etc.
$ svn co file:///var/opt/svn/backup .
Revisión obtenida: 0
$ cd /etcDes dizaines de lignes apparaissent alors, vous indiquant les dossiers et fichiers ajoutés.
$ svn add *
ou
$ svn add -N apache2 && svn add -apache2/conf
$ cd /etcVotre éditeur de texte apparaît alors, vous demandant d'entrer un message. Entrez le texte de votre choix (du genre "Fichiers initiaux"), enregistrez les modifications et sortez.
$ svn commit
$ svn commitVous remarquez par la suite que dans chaque sous dossier de votre arborescence s'est crée un dossier .svn.
Transmitiendo contenido de archivos .................
Commit de la revisión 1.
$ cd /etcVotre éditeur de texte s'ouvre alors. Vous devez entre un nom de dossier/fichier par ligne.
$ svn propedit svn:ignore .
$ cd /etcVous ne devez alors aucun ligne commençant par "?".
$ svn status
$ svn statusNous remarquons que svn a détecté un changement au niveau du fichier resolv.conf: le "M" indique que ce fichier a été modifié.
M resolv.conf
#!/bin/sh # Variables #SVNPATH="/usr/local/etc /etc" SVNBIN=/usr/local/subversion1.4.6/bin/svn SVNADMINBIN=/usr/local/subversion1.4.6/bin/svnadmin SVNLOOK=/usr/local/subversion1.4.6/bin/svnlook SVNREP_PATH=/var/opt/svn/backup/ BACKUP=/var/backup/backup/svn.bz2 SVNPATH="/etc /usr/local" SVNLOG="/var/log/backupsvn.log" #Check svn status for currentpath in $SVNPATH do COUNT=`$SVNBIN status $currentpath|egrep -c -v ^[MAD]` if [ $COUNT -gt 0 ] then echo "(ERREUR?): $COUNT fichiers/dossiers differents de (Modifie, Ajoute, Supprime) dans $currentpath... verifier a la main le repertoire! "|mail votre@mail.com -s "Update configuration $currentpath" echo "`date`: $COUNT modifications dans $currentpath" >> $SVNLOG else COUNT=`$SVNBIN status $currentpath|wc -l` if [ $COUNT -gt 0 ] then echo "`date`: Commit des modifications: $COUNT modifications aportees" >> $SVNLOG $SVNBIN commit $currentpath -m "Update `date`" >> $SVNLOG $SVNADMINBIN dump $SVNREP_PATH | bzip2 -c -9 > $BACKUP chmod 400 $BACKUP LASTREV=`$SVNLOOK youngest $SVNREP_PATH` # Envoi de l'email echo "Modifications rencontrees dans $currentpath: Liste des modifiations: `$SVNLOOK changed $SVNREP_PATH -r $LASTREV` Liste detaillee des diferences: `$SVNBIN diff $currentpath -r $(($LASTREV - 1)) --diff-cmd /usr/bin/diff -x "-y --suppress-common-lines"` "|mail votre@mail.com -s "Update configuration $currentpath" else echo "`date`: Aucune modification dans $currentpath" >> $SVNLOG fi fi doneVous pouvez alors mettre ce script dans votre cron. Ce script auto-valide les modifications de fichiers, mais vous avise de modifications autres dans le répertoire (ajout de fichiers, ajout de dossiers, conflits, etc...)
$Vous récupérerez alors un fichier compressé contenant l'ensemble des versions des fichiers, que vous pouvez externaliser comme bon vous semble.svnadmin dump /var/opt/svn/backup | bzip2 -c -9 >repos_svn.bz2
$ bunzip2 repos_svn.bz2 | svn load /var/opt/svn/backupEn espérant que vous n'ayez pas à utiliser la récupération. Ce n'est jamais très bon signe lorsque l'on doit l'utiliser :)
Catégorie Linux - posté le 24/05/08 19:02:24
