<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://prendreuncafe.com/blog/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Prendre un Café - Tag - bash</title>
  <link>http://prendreuncafe.com/blog/</link>
  <atom:link href="http://prendreuncafe.com/blog/feed/tag/bash/rss2" rel="self" type="application/rss+xml"/>
  <description></description>
  <language>fr</language>
  <pubDate>Thu, 28 Aug 2008 04:27:09 +0200</pubDate>
  <copyright>Contenus sous licence Creative Commons BY-SA</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Programmer ses backups Dotclear grâce à un script bash et CRON</title>
    <link>http://prendreuncafe.com/blog/post/2006/01/22/382-programmer-ses-backups-dotclear-grace-a-un-script-bash-et-cron</link>
    <guid isPermaLink="false">urn:md5:b54a89014dd471648dd4793b0c6fe0b7</guid>
    <pubDate>Sun, 22 Jan 2006 12:16:44 +0000</pubDate>
    <dc:creator>NiKo</dc:creator>
        <category>Dotclear</category>
        <category>backup</category><category>bash</category><category>dotclear</category><category>linux</category><category>tips</category><category>tutoriel</category><category>ubuntu</category>    
    <description>&lt;p&gt;Si vous avez la chance de posséder un accès &lt;acronym title=&quot;Secure Shell&quot;&gt;SSH&lt;/acronym&gt; à votre hébergement &lt;a href=&quot;http://www.dotclear.net&quot; hreflang=&quot;fr&quot;&gt;Dotclear&lt;/a&gt; (ou autre), voici un petit script &lt;a href=&quot;http://fr.wikipedia.org/wiki/Bash&quot; hreflang=&quot;fr&quot;&gt;bash&lt;/a&gt; permettant de sauvegarder l'intégralité des fichiers de votre blog ainsi que la base de données dans une seule et unique archive.&lt;/p&gt;


&lt;p&gt;Le script envoie même le fichier d'export de la base de données compressée par email à l'adresse de votre choix. À l'heure des comptes GMail de 2Go, le poids et la quantité des pièces jointes ne devraient pas poser de problèmes &lt;img src=&quot;/blog/themes/Puc4/smilies/wink.gif&quot; alt=&quot;;)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Associé à une tâche &lt;a href=&quot;http://fr.wikipedia.org/wiki/Cron&quot; hreflang=&quot;fr&quot;&gt;CRON&lt;/a&gt;, ce système permet de vous assurer de toujours posséder une copie de sauvegarde de votre blog.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Prérequis :&lt;/strong&gt; Pour utiliser la fonction d'envoi par mail de la sauvegarde SQL compressée, &lt;a href=&quot;http://www.mutt.org/&quot; hreflang=&quot;en&quot;&gt;Mutt&lt;/a&gt;, le client de messagerie en ligne de commande doit être installé sur le serveur &lt;sup&gt;[&lt;a href=&quot;http://prendreuncafe.com/blog/post/2006/01/22/#pnote-382-1&quot; id=&quot;rev-pnote-382-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt;.&lt;/p&gt;


&lt;p&gt;Voici le script (que vous pourrez adapter à votre convenance et à vos besoins)&amp;nbsp;:&lt;/p&gt;


&lt;pre&gt;#!/bin/bash

HOME=&quot;&amp;lt;repertoire_personnel&amp;gt;&quot; # exemple : /home/users/toto
DIR_BLOG=&quot;$HOME&amp;lt;chemin_vers_le blog&amp;gt;&quot; # exemple : /public_html/dotclear
DIR_BACKUP=&quot;$HOME&amp;lt;chemin_vers_le_repertoire_de_sauvegardes&amp;gt;&quot; # exemple : /backup

SQL_HOST=&quot;&amp;lt;votre_hôte_mysql&amp;gt;&quot;
SQL_USER=&quot;&amp;lt;votre_nom_d_utilisateur_mysql&amp;gt;&quot;
SQL_PASS=&quot;&amp;lt;votre_mot_de_passe_mysql&amp;gt;&quot;
SQL_BASE=&quot;&amp;lt;votre_base_mysql&amp;gt;&quot;

CURRENTDATE=$(date +%Y%m%d)

MAIL_TO=&quot;&amp;lt;votre_adresse_email&amp;gt;&quot;
MAIL_SUBJECT=&quot;[$CURRENTDATE] Sauvegarde SQL&quot;
MAIL_MESSAGE=&quot;En pièce jointe la base de données en date du $CURRENTDATE&quot;

DBDUMP_FILENAME=&quot;sql$CURRENTDATE.sql&quot;

echo &quot;Export de la base de données...&quot;
touch $DIR_BACKUP/$DBDUMP_FILENAME
mysqldump -h $SQL_HOST -u $SQL_USER --password=$SQL_PASS $SQL_BASE &amp;gt; $DIR_BACKUP/$DBDUMP_FILENAME

echo &quot;Compression de l'export...&quot;
tar czf $DIR_BACKUP/$DBDUMP_FILENAME.tar.gz $DIR_BACKUP/$DBDUMP_FILENAME

echo &quot;Création de l'achive globale...&quot;
tar czf $DIR_BACKUP/puc$CURRENTDATE.tar.gz $DIR_BLOG $DIR_BACKUP/$DBDUMP_FILENAME.tar.gz

echo &quot;Envoi de la sauvegarde MySQL par email à $MAIL_BACKUP...&quot;
echo $MAIL_MESSAGE | mutt -s $MAIL_SUBJECT -a $DIR_BACKUP/$DBDUMP_FILENAME.tar.gz $MAIL_TO

echo &quot;Suppression des fichiers tempporaires...&quot;
rm -f $DIR_BACKUP/$DBDUMP_FILENAME
rm -f $DIR_BACKUP/$DBDUMP_FILENAME.tar.gz

echo &quot;Sauvegarde effectuée dans $DIR_BACKUP/puc$CURRENTDATE.tar.gz&quot;&lt;/pre&gt;


&lt;p&gt;Personnellement, j'ai stocké ce script dans un dossier &lt;code&gt;bin&lt;/code&gt; à la racine de mon répertoire personnel et l'ai nommé &lt;code&gt;backup.sh&lt;/code&gt; et lui ai attribué les droits d'utilisation pour l'utilisateur courant (moi)&amp;nbsp;:&lt;/p&gt;


&lt;pre&gt;$ chmod u+x ~/bin/backup.sh&lt;/pre&gt;


&lt;p&gt;On peut tester le script en l'executant&amp;nbsp;:&lt;/p&gt;


&lt;pre&gt;$ ~/bin/backup.sh&lt;/pre&gt;


&lt;p&gt;Il est également possible de plannifier l'execution de ce script à intervalle régulière&amp;nbsp;; par exemple &lt;em&gt;tous les dimanches à 23h00&lt;/em&gt;. Pour cela, il faut éditer notre fichier &lt;code&gt;crontab&lt;/code&gt;&amp;nbsp;:&lt;/p&gt;


&lt;pre&gt;$ crontab -e&lt;/pre&gt;


&lt;p&gt;Dans l'éditeur (généralement, &lt;a href=&quot;http://fr.wikipedia.org/wiki/Vi_%28logiciel%29&quot; hreflang=&quot;fr&quot;&gt;Vi&lt;/a&gt;), ajoutez cette ligne &lt;sup&gt;[&lt;a href=&quot;http://prendreuncafe.com/blog/post/2006/01/22/#pnote-382-2&quot; id=&quot;rev-pnote-382-2&quot;&gt;2&lt;/a&gt;]&lt;/sup&gt;&amp;nbsp;:&lt;/p&gt;


&lt;pre&gt;0 23 * * 0       ~/bin/backup_puc.sh&lt;/pre&gt;


&lt;p&gt;Vous noterez que le script est assez brut de décoffrage, notamment en ce qui concerne la gestion d'erreurs (absente). N'hésitez pas à proposer vos suggestions en commentaire &lt;img src=&quot;/blog/themes/Puc4/smilies/smile.gif&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://prendreuncafe.com/blog/post/2006/01/22/#rev-pnote-382-1&quot; id=&quot;pnote-382-1&quot;&gt;1&lt;/a&gt;] Si vous connaissez un moyen d'envoyer une pièce jointe encodée en &lt;em&gt;base64&lt;/em&gt; via &lt;code&gt;uuencode&lt;/code&gt; et la commande &lt;code&gt;mail&lt;/code&gt;, vos lumières sont les bienvenues &lt;img src=&quot;/blog/themes/Puc4/smilies/smile.gif&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://prendreuncafe.com/blog/post/2006/01/22/#rev-pnote-382-2&quot; id=&quot;pnote-382-2&quot;&gt;2&lt;/a&gt;] Pour plus d'info, la syntaxe cron est détaillée sur &lt;a href=&quot;http://www.adminschoice.com/docs/crontab.htm&quot; hreflang=&quot;en&quot;&gt;ce site&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
</description>
    
    
    
      </item>
    
</channel>
</rss>