<?xml version="1.0" encoding="UTF-8" ?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Posteet: bash,backup</title> 
    <link>http://www.posteet.com/</link> 
    <description>Recent posteets posted to Posteet</description>
    <ttl>60</ttl>

    
    <item>
        <title>Sauvegarde d'un dépôt SVN</title>
        <link>http://www.posteet.com/view/672</link>
        <description>
        <![CDATA[<pre>#!/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=&quot;/chemin/repository&quot;;
# Chemin du dossier de sauvegarde
pathBackup=&quot;/chemin/dossier/sauvegarde&quot;;
# Chemin du dossier pour mémoriser la dernière version sauvegardée
pathNumVersion=$pathBackup&quot;/version&quot;;
# Chemin du fichier de logs
pathLog=$pathBackup&quot;/backup.log&quot;;
# Nom du fichier (compris entre la date et l'extension)
fileName=&quot;backup_svn&quot;;
# Format de la date
# Pour le nom du fichier
dateFileFormat=&quot;+%Y%m%d&quot;;
# Pour le log
dateLogFormat=&quot;+%Y-%m-%d %H:%M&quot;;

# Vérifications
# Vérification de l'existence des dossiers de travail
if [ ! -d $pathBackup ]; then
	echo &quot;Dossier $pathBackup inexistant&quot;;
	exit 1;
fi

echo &quot;[$(date &quot;$dateLogFormat&quot;)] Début de la sauvegarde&quot; &gt;&gt; $pathLog;

# Création du dossier de la version si il n'existe pas
if [ ! -d $pathNumVersion ]; then
	mkdir $pathNumVersion;
fi

numVersionLastBackup=$(ls $pathNumVersion);
if [ &quot;$numVersionLastBackup&quot; = &quot;&quot; ]; then
	touch &quot;$pathNumVersion/1&quot;;
	numVersionLastBackup=1;
fi

if [ $numVersionLastBackup -gt 1 ]; then
	backupIncremental=&quot; --incremental&quot;;
	typeBackup=&quot;incr&quot;;
else
	typeBackup=&quot;full&quot;;
fi

# Vérification de l'existance du dépôt
if  ! (svnlook info $pathRepo 2&gt;&gt;$pathLog 1&gt;&quot;/dev/null&quot;) ; then
	echo &quot;[$(date &quot;$dateLogFormat&quot;)] ERREUR : Repository $pathRepo inexistant&quot; &gt;&gt; $pathLog;
	echo &quot;[$(date &quot;$dateLogFormat&quot;)] Fin de l'exécution - Sauvegarde non effectuée&quot; &gt;&gt; $pathLog;
	exit 1;
fi

# Récupération de la dernière version présente dans le dépôt
youngestSvnVersion=$(svnlook youngest $pathRepo);
echo &quot;[$(date &quot;$dateLogFormat&quot;)] Version la plus récente : $youngestSvnVersion&quot; &gt;&gt; $pathLog;

if [ $numVersionLastBackup -gt $youngestSvnVersion ]; then
	echo &quot;[$(date &quot;$dateLogFormat&quot;)] La version la plus récente est la version sauvegardée, la sauvegarde n'est donc pas nécéssaire&quot; &gt;&gt; $pathLog;
	echo &quot;[$(date &quot;$dateLogFormat&quot;)] Fin de la sauvegarde&quot; &gt;&gt; $pathLog;
	exit 0
fi

# Lancement effectif de la sauvegarde
if (svnadmin dump -r$numVersionLastBackup:$youngestSvnVersion$backupIncremental $pathRepo 2&gt;&gt;$pathLog | bzip2 &gt; &quot;$pathBackup/$(date &quot;$dateFileFormat&quot;)_&quot;$fileName&quot;_&quot;$typeBackup&quot;_&quot;$numVersionLastBackup&quot;_to_&quot;$youngestSvnVersion&quot;.svndump.bz2&quot;) ; then
	echo &quot;[$(date &quot;$dateLogFormat&quot;)] Mise à jour du numéro de version&quot; &gt;&gt; $pathLog;
	mv $pathNumVersion/$numVersionLastBackup $pathNumVersion/$(($youngestSvnVersion + 1));
else
	echo &quot;[$(date &quot;$dateLogFormat&quot;)] Erreur lors de la sauvegarde&quot; &gt;&gt; $pathLog;
	echo &quot;[$(date &quot;$dateLogFormat&quot;)] Fin de l'exécution - Sauvegarde non effectuée&quot; &gt;&gt; $pathLog;
	exit 1;
fi

echo &quot;[$(date &quot;$dateLogFormat&quot;)] Fin de la sauvegarde&quot; &gt;&gt; $pathLog;
exit 0</pre> <a href="http://www.posteet.com/tags/backup">[backup]</a>  <a href="http://www.posteet.com/tags/bash">[bash]</a>  <a href="http://www.posteet.com/tags/linux">[linux]</a>  <a href="http://www.posteet.com/tags/svn">[svn]</a> ]]>        </description>
        <dc:creator>gameplayer</dc:creator>
        <pubDate>Tue, 15 Jan 2008 07:34:51 +0000</pubDate>

            <category>backup</category>
            <category>bash</category>
            <category>linux</category>
            <category>svn</category>
    
    </item>

  
    <item>
        <title>Backup quotidien de repertoires</title>
        <link>http://www.posteet.com/view/575</link>
        <description>
        <![CDATA[<pre>#!/bin/sh

# Ce script est a appeler dans la crontab :
# ~$ crontab -e
# 0 6 * * * /home/benoit/make_backups.sh &gt;&gt;/home/benoit/backups_automatises.log
# Dans l'exemple, ce script sera execute tous les jours a 6h00 du matin

# sauvegarde d'un repertoire
make_backup ()
{
	rep=$1
	
	# Si un fichier porte deja ce nom, on le renomme (juste au cas ou)
	if test -f &quot;${rep}_${date_du_jour}.tar.gz&quot;
	then
		mv &quot;${rep}_${date_du_jour}.tar.gz&quot; &quot;${rep}_${date_du_jour}_old.tar.gz&quot; &gt;&gt; &quot;$log&quot; 2&gt;&gt; &quot;$log&quot;
		echo &quot;Le fichier ${rep}_${date_du_jour}.tar.gz a ete renomme en ${rep}_${date_du_jour}_old.tar.gz&quot; &gt;&gt; &quot;$log&quot;
	fi
	
	echo &quot;SAUVEGARDE DE `echo $rep | tr [a-z] [A-Z]`...&quot;  &gt;&gt; &quot;$log&quot;

	# Sauvegarde du repertoire a la date du jour
	tar -cf &quot;${rep}_${date_du_jour}.tar&quot; &quot;${rep}&quot; &gt;&gt; &quot;$log&quot; 2&gt;&gt; &quot;$log&quot;
	gzip &quot;${rep}_${date_du_jour}.tar&quot;
	
	echo &quot;EFFECTUEE&quot;  &gt;&gt; &quot;$log&quot;
	
	# Suppression du fichier backup datant d'il y a trois jours
	if test -f &quot;${rep}_${avant_avant_hier}.tar.gz&quot; &amp;&amp; test -f &quot;${rep}_${avant_hier}.tar.gz&quot; &amp;&amp; test -f &quot;${rep}_${hier}.tar.gz&quot;
	then
		\rm -f &quot;${rep}_${avant_avant_hier}.tar.gz&quot; &gt;&gt; &quot;$log&quot; 2&gt;&gt; &quot;$log&quot;
		echo &quot;Le fichier ${rep}_${avant_avant_hier}.tar.gz a ete supprime&quot; &gt;&gt; &quot;$log&quot;
	fi
	
	echo &quot;&quot;  &gt;&gt; &quot;$log&quot;
}

repertoire_racine=&quot;/home/benoit&quot;
log=&quot;backups_automatises.log&quot;
date_du_jour=`date +'%y%m%d'`
hier=`date +'%y%m%d' -d 'yesterday'`
avant_hier=`date +'%y%m%d' -d '2 days ago'`
avant_avant_hier=`date +'%y%m%d' -d '3 days ago'`

cd &quot;$repertoire_racine&quot;

echo &quot;********************************************************************************&quot; &gt;&gt; &quot;$log&quot;
echo &quot;&quot;  &gt;&gt; &quot;$log&quot;
echo &quot;SAUVEGARDE DU `date +'%Y-%m-%d'` A `date +'%H:%M:%S'`&quot;  &gt;&gt; &quot;$log&quot;
echo &quot;&quot;  &gt;&gt; &quot;$log&quot;
echo &quot;&quot;  &gt;&gt; &quot;$log&quot;

make_backup &quot;repertoire1&quot;
make_backup &quot;repertoire2&quot;

exit 0</pre> <a href="http://www.posteet.com/tags/backup">[backup]</a>  <a href="http://www.posteet.com/tags/bash">[bash]</a>  <a href="http://www.posteet.com/tags/crontab">[crontab]</a>  <a href="http://www.posteet.com/tags/date">[date]</a>  <a href="http://www.posteet.com/tags/shell">[shell]</a> ]]>        </description>
        <dc:creator>benoitbalon</dc:creator>
        <pubDate>Tue, 11 Dec 2007 09:01:08 +0000</pubDate>

            <category>backup</category>
            <category>bash</category>
            <category>crontab</category>
            <category>date</category>
            <category>shell</category>
    
    </item>

  
    <item>
        <title>mysql_backup.sh</title>
        <link>http://www.posteet.com/view/125</link>
        <description>
        <![CDATA[<pre>#!/bin/bash

prefixe=backup
suffixe=$(date +%Y%m%d)
filename=$prefixe$suffixe.sql
host=host
database=database
user=user
characterSet=UTF8

mysqldump --skip-comments \
--complete-insert \
--default-character-set=$characterSet \
--no-create-info \
--skip-add-locks \
--skip-opt \
--host $host \
--user $user \
-p $database &gt; $filename

sed -i &quot;1iuse $database;\nSET CHARACTER SET '$characterSet';&quot; $filename
exit 0</pre> <a href="http://www.posteet.com/tags/backup">[backup]</a>  <a href="http://www.posteet.com/tags/bash">[bash]</a>  <a href="http://www.posteet.com/tags/data">[data]</a>  <a href="http://www.posteet.com/tags/données">[données]</a>  <a href="http://www.posteet.com/tags/mysql">[mysql]</a>  <a href="http://www.posteet.com/tags/sauvegarde">[sauvegarde]</a> ]]>        </description>
        <dc:creator>xavier</dc:creator>
        <pubDate>Sat, 03 Nov 2007 13:44:28 +0000</pubDate>

            <category>backup</category>
            <category>bash</category>
            <category>data</category>
            <category>données</category>
            <category>mysql</category>
            <category>sauvegarde</category>
    
    </item>


</channel>
</rss>
