<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>backup Archives - Mon linux</title>
	<atom:link href="https://www.monlinux.net/tag/backup/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.monlinux.net/tag/backup/</link>
	<description>by Belgotux</description>
	<lastBuildDate>Thu, 22 Feb 2024 12:35:00 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.5</generator>

<image>
	<url>https://www.monlinux.net/wp-content/uploads/cropped-mon-linux-logo-grey-512-32x32.png</url>
	<title>backup Archives - Mon linux</title>
	<link>https://www.monlinux.net/tag/backup/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Mysqldump benchmark compression</title>
		<link>https://www.monlinux.net/2024/02/mysqldump-benchmark-compression/</link>
					<comments>https://www.monlinux.net/2024/02/mysqldump-benchmark-compression/#respond</comments>
		
		<dc:creator><![CDATA[belgotux]]></dc:creator>
		<pubDate>Thu, 22 Feb 2024 17:20:00 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[mysql]]></category>
		<guid isPermaLink="false">http://www.monlinux.net/?p=1067</guid>

					<description><![CDATA[<p>Mysqldump tout le monde l&#8217;utilise pour exporter des donn&#233;es MySQL. Cependant, le volume de donn&#233;es g&#233;n&#233;r&#233; par Mysqldump peut rapidement devenir consid&#233;rable. Il est tr&#232;s utile de pouvoir compresser ces dump pour r&#233;duire leur taille, mais sans avoir des pertes... <a class="more-link" href="https://www.monlinux.net/2024/02/mysqldump-benchmark-compression/">Continue Reading &#8594;</a></p>
<p>L’article <a href="https://www.monlinux.net/2024/02/mysqldump-benchmark-compression/">Mysqldump benchmark compression</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Mysqldump tout le monde l&rsquo;utilise pour exporter des données MySQL. Cependant, le volume de données généré par Mysqldump peut rapidement devenir considérable. Il est très utile de pouvoir compresser ces dump pour réduire leur taille, mais sans avoir des pertes de performances inutiles. J&rsquo;ai mesuré l&rsquo;impact de différentes méthodes de compression gzip, pigz, xz et pixz. Afin de mettre en lumière les performances de Mysqldump et les gains en termes d&rsquo;espace de stockage.</p>



<span id="more-1067"></span>



<h2 class="wp-block-heading">Protocole de test</h2>



<ul class="wp-block-list">
<li>Une base de données de dump brute de 7Go avec innodb a été utilisée</li>



<li>Cela tourne sous MySQL 5.7, c&rsquo;est une veille app comme il en reste beaucoup. Il faudra tester également avec MySQL 8.0.</li>



<li>VM sous ESXi avec 12 vCPU intel Xeon qui ont 5ans.</li>
</ul>



<h3 class="wp-block-heading">Compressions utilisées</h3>



<p>La compression de texte se passant mal pour bzip2, je l&rsquo;ai d&rsquo;office exclus. J&rsquo;envisage donc Gzip et XZ. Il y a le monde un seul thread avec :</p>



<ul class="wp-block-list">
<li>Gzip</li>



<li>XZ</li>
</ul>



<p>Et multi-thread avec : </p>



<ul class="wp-block-list">
<li>pigz</li>



<li>pixz</li>
</ul>



<p>Quand il n&rsquo;y a plus de gain selon le niveau de compression (pouvant aller de 1 à 9), j&rsquo;arrête les tests inutiles.</p>



<h2 class="wp-block-heading">Tableau benchmark compression Mysqldump</h2>



<p>Pour Gzip, il n&rsquo;y a plus de gain de taille après une compression de 7.</p>



<p>Pour XZ, il n&rsquo;y a plus de gain de taille après un niveau de 5.</p>



<figure class="wp-block-table"><table><tbody><tr><td rowspan="3">Algorithme</td><td rowspan="3">Proc</td><td colspan="5">Compression</td><td colspan="2">Décompression</td></tr><tr><td rowspan="2">Niveau</td><td>Taille</td><td rowspan="2">Ratio</td><td rowspan="2">Temps (min)</td><td>Vitesse</td><td>Temps</td><td>Vitesse</td></tr><tr><td>(Mo)</td><td>(Mo/s)</td><td>(min)</td><td>(Mo/s)</td></tr><tr><td rowspan="3">gzip</td><td rowspan="3">1</td><td>3</td><td>1291</td><td>18,06%</td><td>2,82</td><td>42,30</td><td>1,93</td><td>61,62</td></tr><tr><td>5</td><td>1143</td><td>15,99%</td><td>3,70</td><td>32,20</td><td>1,52</td><td>78,55</td></tr><tr><td>7</td><td>1115</td><td>15,60%</td><td>5,53</td><td>21,53</td><td>1,43</td><td>83,12</td></tr><tr><td rowspan="9">pigz</td><td rowspan="3">2</td><td>3</td><td>1287</td><td>18,01%</td><td>1,62</td><td>73,69</td><td>1,65</td><td>72,20</td></tr><tr><td>5</td><td>1143</td><td>15,99%</td><td>1,98</td><td>60,07</td><td>1,55</td><td>76,86</td></tr><tr><td>7</td><td>1115</td><td>15,60%</td><td>2,73</td><td>43,59</td><td>1,57</td><td>76,04</td></tr><tr><td rowspan="3">3</td><td>3</td><td>1287</td><td>18,01%</td><td>1,38</td><td>86,12</td><td>1,38</td><td>86,12</td></tr><tr><td>5</td><td>1143</td><td>15,99%</td><td>2,17</td><td>54,98</td><td>1,53</td><td>77,70</td></tr><tr><td>7</td><td>1115</td><td>15,60%</td><td>2,30</td><td>51,80</td><td>1,6</td><td>74,46</td></tr><tr><td rowspan="3">4</td><td>3</td><td>1287</td><td>18,01%</td><td>1,45</td><td>82,16</td><td>1,40</td><td>85,10</td></tr><tr><td>5</td><td>1143</td><td>15,99%</td><td>1,63</td><td>72,94</td><td>1,62</td><td>73,69</td></tr><tr><td>7</td><td>1115</td><td>15,60%</td><td>1,87</td><td>63,82</td><td>1,55</td><td>76,86</td></tr><tr><td colspan="10">&nbsp;</td></tr><tr><td rowspan="3">xz</td><td rowspan="3">1</td><td>1</td><td>841</td><td>11,77%</td><td>8,52</td><td>13,99</td><td>2,4</td><td>49,64</td></tr><tr><td>3</td><td>771</td><td>10,79%</td><td>24,25</td><td>4,91</td><td>1,73</td><td>68,73</td></tr><tr><td>5</td><td>680</td><td>9,51%</td><td>56,13</td><td>2,12</td><td>1,63</td><td>72,94</td></tr><tr><td rowspan="12">pixz</td><td rowspan="2"><strong>2</strong></td><td><strong>1</strong></td><td><strong>841</strong></td><td><strong>11,77%</strong></td><td><strong>8,07</strong></td><td>14,77</td><td>1,62</td><td>73,69</td></tr><tr><td>3</td><td>771</td><td>10,79%</td><td>17,32</td><td>6,88</td><td>1,72</td><td>69,40</td></tr><tr><td rowspan="2">3</td><td>1</td><td>841</td><td>11,77%</td><td>9,07</td><td>13,14</td><td>3,13</td><td>38,02</td></tr><tr><td>3</td><td>771</td><td>10,79%</td><td>26,90</td><td>4,43</td><td>3,03</td><td>39,27</td></tr><tr><td rowspan="4">4</td><td>1</td><td>841</td><td>11,77%</td><td>8,82</td><td>13,51</td><td>1,98</td><td>60,07</td></tr><tr><td>3</td><td>771</td><td>10,79%</td><td>19,22</td><td>6,20</td><td>2,00</td><td>59,57</td></tr><tr><td>4</td><td>768</td><td>10,74%</td><td>31,03</td><td>3,84</td><td>1,97</td><td>60,58</td></tr><tr><td>5</td><td>680</td><td>9,51%</td><td><span style="color: #ff0000;">47,73</span></td><td>2,50</td><td>1,92</td><td>62,16</td></tr><tr><td rowspan="2"><strong>5</strong></td><td>1</td><td>841</td><td>11,77%</td><td>8,12</td><td>14,68</td><td>2,98</td><td>39,93</td></tr><tr><td><strong>3</strong></td><td><strong>771</strong></td><td><strong>10,79%</strong></td><td><strong>17,38</strong></td><td>6,85</td><td>3,02</td><td>39,49</td></tr><tr><td rowspan="2">6</td><td>1</td><td>841</td><td>11,77%</td><td>8,00</td><td>14,89</td><td>2,58</td><td>46,12</td></tr><tr><td>3</td><td>771</td><td>10,79%</td><td>17,08</td><td>6,97</td><td>2,07</td><td>57,65</td></tr></tbody></table></figure>



<h3 class="wp-block-heading">Résultats de compression Mysqldump</h3>



<p>Le meilleur temps qui ne consomme pas trop de ressources, c&rsquo;est <strong>pigz avec 4 threads et une compression de niveau 3</strong>. La compression est très bonne un niveau 7, mais 3% de taille en moins pour 28% de temps en plus, est-ce utile ? Vous savez quoi utilise pour gagner 5,5x l&rsquo;espace disque en impactant très peu la charge CPU.</p>



<p>Comme vous pouvez le voir, il y a deux options si vous avez besoin d&rsquo;archiver à long terme beaucoup de données :</p>



<ul class="wp-block-list">
<li>soit vous cherchez la rapidité et avoir un gain important de place par rapport à gzip et vous utiliserez pixz avec un niveau 1 de compression et 2 processus.</li>



<li>soit vous cherchez une compression importante et vous utiliserez <strong>pixz avec un niveau 3 de compression et 5 processus</strong>. Un niveau plus haut que 3 ne sert à rien, trop de temps perdu pour un gain minime de compression, comme on peut le voir avec un niveau 5</li>
</ul>



<p>Si vous avez une architecture master/slave MySQL, je vous conseille de le faire sur votre slave pour éviter les lock tables sur votre master.</p>



<p>J&rsquo;ai effectué un comparatif également pour <a href="https://www.monlinux.net/2017/11/xtrabackup-benchmark-compression-mysql/">les backups compressés d&rsquo;XtraBackup</a>.</p>
<p>L’article <a href="https://www.monlinux.net/2024/02/mysqldump-benchmark-compression/">Mysqldump benchmark compression</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.monlinux.net/2024/02/mysqldump-benchmark-compression/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>[dossier] Sauvegarder les données de son site en 3 étapes &#8211; backup</title>
		<link>https://www.monlinux.net/2014/11/sauvegarder-les-donnees-site-en-3-etapes-backup/</link>
					<comments>https://www.monlinux.net/2014/11/sauvegarder-les-donnees-site-en-3-etapes-backup/#respond</comments>
		
		<dc:creator><![CDATA[belgotux]]></dc:creator>
		<pubDate>Fri, 07 Nov 2014 22:18:14 +0000</pubDate>
				<category><![CDATA[Général]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[mysql]]></category>
		<guid isPermaLink="false">http://www.monlinux.net/?p=672</guid>

					<description><![CDATA[<p>Vous n&#8217;avez jamais eu de probl&#232;me avec un h&#233;bergeur qui &#171;&#160;perd&#160;&#187; votre site ? Ou une mise &#224; jour foireuse de votre CRM ? Ca nous est d&#233;j&#224; tous arriv&#233;. Dans mon cas des plugins WordPress lors de mises &#224;... <a class="more-link" href="https://www.monlinux.net/2014/11/sauvegarder-les-donnees-site-en-3-etapes-backup/">Continue Reading &#8594;</a></p>
<p>L’article <a href="https://www.monlinux.net/2014/11/sauvegarder-les-donnees-site-en-3-etapes-backup/">[dossier] Sauvegarder les données de son site en 3 étapes &#8211; backup</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Vous n&rsquo;avez jamais eu de problème avec un hébergeur qui « perd » votre site ? Ou une mise à jour foireuse de votre CRM ? Ca nous est déjà tous arrivé. Dans mon cas des plugins WordPress lors de mises à jour&#8230; Heureusement j&rsquo;avais mon backup <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Bien évidement j&rsquo;avais prévu le coup et je n&rsquo;ai rien perdu si ce n&rsquo;est les logs WordPress de connexion des dernières 24h, ce qui n&rsquo;a jamais était mon souci. Les logs de mon hébergeur me donne déjà satisfaction.</p>
<p>Voici mon premier dossier consacré à la sauvegarde sécurisée des données de votre site web. Il y a 3 étapes à faire pour avoir un backup sur, simple, complet et surtout entièrement automatisé :</p>
<ol>
<li><a title="Exporter les bases de données MySQL dans la partie privée de son FTP via cron" href="https://www.monlinux.net/2014/11/exporter-les-bases-donnees-mysql-partie-privee-ftp-via-cron/">Exporter les bases de données MySQL dans la partie privée de son FTP via cron</a></li>
<li><a title="Cloner son répertoire FTP pour sauvegarder son site web" href="https://www.monlinux.net/2014/11/cloner-repertoire-ftp-sauvegarder-site-web/">Cloner le contenu de son FTP à distance pour avoir ses backups délocalisées</a></li>
<li><a title="Avoir un historique des données FTP en local via rdiff-backup" href="https://www.monlinux.net/2014/11/avoir-historique-donnees-ftp-en-local-via-rdiff-backup/">Mettre en place un backup des données FTP en local pour l&rsquo;historique via rdiff-backup</a></li>
</ol>
<p>Par après on pourrait imaginer de mettre ces données dans un backup externalisé de deuxième niveau <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>L’article <a href="https://www.monlinux.net/2014/11/sauvegarder-les-donnees-site-en-3-etapes-backup/">[dossier] Sauvegarder les données de son site en 3 étapes &#8211; backup</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.monlinux.net/2014/11/sauvegarder-les-donnees-site-en-3-etapes-backup/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Avoir un historique des données FTP en local via rdiff-backup</title>
		<link>https://www.monlinux.net/2014/11/avoir-historique-donnees-ftp-en-local-via-rdiff-backup/</link>
					<comments>https://www.monlinux.net/2014/11/avoir-historique-donnees-ftp-en-local-via-rdiff-backup/#respond</comments>
		
		<dc:creator><![CDATA[belgotux]]></dc:creator>
		<pubDate>Fri, 07 Nov 2014 21:20:35 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[rdiff-backup]]></category>
		<guid isPermaLink="false">http://www.monlinux.net/?p=690</guid>

					<description><![CDATA[<p>Pour la 3e &#233;tape du backup de notre site web, on va garder un historique des versions hebdomadaires de notre site. Cela permet d&#8217;aller r&#233;cup&#233;rer l&#8217;&#233;tat de son site une ou plusieurs semaines dans le pass&#233;. Pratique si on a... <a class="more-link" href="https://www.monlinux.net/2014/11/avoir-historique-donnees-ftp-en-local-via-rdiff-backup/">Continue Reading &#8594;</a></p>
<p>L’article <a href="https://www.monlinux.net/2014/11/avoir-historique-donnees-ftp-en-local-via-rdiff-backup/">Avoir un historique des données FTP en local via rdiff-backup</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Pour la 3e étape du <a title="[dossier] Sauvegarder les données de son site en 3 étapes – backup" href="https://www.monlinux.net/2014/11/sauvegarder-les-donnees-site-en-3-etapes-backup/">backup de notre site web</a>, on va garder un historique des versions hebdomadaires de notre site. Cela permet d&rsquo;aller récupérer l&rsquo;état de son site une ou plusieurs semaines dans le passé. Pratique si on a mis à jour un plugin foireux de notre CMS et qu&rsquo;on s&rsquo;en est rendu compte après la synchro du clone automatique du site&#8230;</p>
<p>Voici le script de sauvegarde rdiff-backup : <a href="https://www.monlinux.net/wp-content/uploads/backupDataLocalRdiff.sh_.txt">backupDataLocalRdiff.sh</a></p>
<p>&nbsp;</p>
<p>Pour les tâches planifiées, je vous conseille ceci :</p>
<pre class="lang:sh decode:true">30 1 * * 7 root [ -x /root/backupDataLocalRdiff.sh ] &amp;&amp; /root/backupDataLocalRdiff.sh localhistorybackup
01 6 1 * * root [ -x /root/backupDataLocalRdiff.sh ] &amp;&amp; /root/backupDataLocalRdiff.sh localhistoryverify</pre>
<ul>
<li>Une fois par semaine, on archive les données FTP et les dump MySQL</li>
<li>Une fois par mois, on reçoit un résumé avec les tailles des sauvegardes rdiff-backup.</li>
</ul>
<p>&nbsp;</p>
<p><span id="more-690"></span></p>
<p>Voici le script en question :</p>
<pre class="lang:sh decode:true ">#!/bin/bash
# Auteur : Belgotux
# Site : www.monlinux.net
# Adresse : b&#101;l&#103;ot&#117;&#120;&#64;&#109;on&#108;inu&#120;&#46;net
# Version : 1.0.2
# Date : 05/03/2012
# Description : 

#Arguments
# backupDataLocalRdiff localhistorybackup | localhistoryverify

# for crontab 
# 30 1 * * * root [ -x /root/backupDataLocalRdiff.sh ] &amp;&amp; /root/backupDataLocalRdiff.sh localhistorybackup
# 01 6 1 * * root [ -x /root/backupDataLocalRdiff.sh ] &amp;&amp; /root/backupDataLocalRdiff.sh localhistoryverify

error_report=root
mail_report=root
folderBackup="/data/clone-ftp
/root"								#dossiers à sauvegarder en chemin absolu sans / à la fin
foldersExcluded="/data/perso/test"
logFile=""
formatDate="%Y-%m-%d %H:%M:%S"		#obligatoire
rdiffbackupRemovePeriod="3M" 		# obligatoire période rdiffbackup pour faire un clean des vieilles backups ( si full 1mois et remove 3 mois, on garde en fait 4 mois (car regarde la date du dernier incrémental donc 1 de plus))

#Variables sauvegarde local
dossierDistantLocal="/data/backup"


#Variables définies
if [ "$logFile" == "" ] ; then logFile="/var/log/$(basename $0 .sh).log" ; fi


### Fonctions ###

function rdiffbackupLocal {
	echo -e "Backups incrémentales Rdiff-backup en cours..."
	
	cptResult=0
	flagError=0
	while read i ; do
		echo -e "\n\n\n- dossier en cours : $i"
		#test répertoire vide
		if [ $(ls -a "$i"|wc -l) = 2 ] ; then
			echo "  !Erreur : répertoire $1 vide!"
			flagError=1
			verif=1
		else
			# (rdiffbackup chemin absolut)
			excluded="$foldersExcluded"
			folderDestination=$(basename "$i")	#dossier destination = nom du dossier local
			
			echo -e "$excluded" | rdiff-backup --print-statistics --exclude-filelist-stdin "$i" ${dossierDistantLocal}/"$folderDestination" &amp;&amp; \
			rdiff-backup --print-statistics --remove-older-than "$rdiffbackupRemovePeriod" --force ${dossierDistantLocal}/"$folderDestination"
			
			verif=$?
			if [ "$verif" != 0 ] ; then
				echo "  !Erreur synchronisation dossier $i"
				flagError=1
			else
				echo "    Synchronisation terminée du dossier $i"
			fi
		fi
		
		tabResultRdiffbackupLocal[$cptResult]="$verif"
		cptResult=$(($cptResult+1))
	done &lt; &lt;( echo -e "$folderBackup" )
	
	if [ $flagError == 0 ] ; then
		return 0
	else
		return 1
	fi
}


function rdiffbackupVerifyLocal {
	echo -e "Check Rdiff-backup en cours..."
	
	cptResult=0
	flagError=0
	while read i ; do
		echo -e "\n\n\n- dossier en cours : $i"
		folderDestination=$(basename "$i")	#dossier destination = nom du dossier local
		rdiff-backup --print-statistics --test-server --list-increment-sizes ${dossierDistantLocal}/"$folderDestination"
		
		verif=$?
		if [ "$verif" != 0 ] ; then
			echo "  !Erreur check dossier $i"
			flagError=1
		else
			echo "    Check du dossier $i"
		fi
		
		tabResultRdiffbackupLocal[$cptResult]="$verif"
		cptResult=$(($cptResult+1))
	done &lt; &lt;( echo -e "$folderBackup" )
	
	if [ $flagError == 0 ] ; then
		return 0
	else
		return 1
	fi
}



############### Main ###############

case "$1" in

localhistorybackup)
	if [ "$dossierDistantLocal" != "" ] ; then
		rdiffbackupLocal
		returnRdiffbackupLocal=$?
		#gestion erreurs
		if [ $returnRdiffbackupLocal != 0 ] ; then
			mailBody=$(echo -e "\nErreur : RdiffbackupLocal=$returnRdiffbackupLocal")
			cpt=0
			while read i ; do
				if [ "${tabResultRdiffbackupLocal}" = "" ] || [ ${tabResultRdiffbackupLocal[$cpt]} != 0 ] ; then
					mailBody+=$(echo -e "\n  $i : ${tabResultRdiffbackupLocal[$cpt]}")
				fi
				cpt=$(($cpt+1))
			done &lt; &lt;( echo -e "$folderBackup" )
			echo $(date +"$formatDate")" Erreur : RdiffbackupLocal=$returnRdiffbackupLocal" &gt;&gt; $logFile
			echo "$mailBody" | mail -s "$(hostname -f) erreur backup rdiffbackup" $error_report
		fi
		
		if [ $returnRdiffbackupLocal != 0 ] ; then
			exit 1
		else
			echo ""
			echo -e "opération terminée"
			echo ""
			echo -e "Backup rdiffbackup réussie" | mail -s "$(hostname -f) backup rdiffbackup reussie" $mail_report
		fi
	else
		echo -e "\nErreur : Paramètres manquants" | mail -s "$(hostname -f) erreur backup rdiffbackup" $error_report
		exit 1
	fi
	;;
localhistoryverify)
	if [ "$dossierDistantLocal" != "" ] ; then
		rdiffbackupVerifyLocal | mail -s "$(hostname -f) résumé du mois rdiffbackup " $mail_report
	fi
	;;
*)
	echo "Aide :"
	echo "$(basename $0) localhistorybackup | localhistoryverify"
	echo ""
	exit 0
	;;
esac


echo $(date +"$formatDate")" opération terminée" &gt;&gt; $logFile

exit 0</pre>
<p>Voilà vous être tranquille maintenant <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Vérifiez de temps en temps les mails de retour des backups et surtout essayez de faire une restauration sur un autre serveur pour tester vos backups au moins une fois par an!</p>
<p>&nbsp;</p>
<p>L’article <a href="https://www.monlinux.net/2014/11/avoir-historique-donnees-ftp-en-local-via-rdiff-backup/">Avoir un historique des données FTP en local via rdiff-backup</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.monlinux.net/2014/11/avoir-historique-donnees-ftp-en-local-via-rdiff-backup/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Exporter les bases de données MySQL dans la partie privée de son FTP via cron</title>
		<link>https://www.monlinux.net/2014/11/exporter-les-bases-donnees-mysql-partie-privee-ftp-via-cron/</link>
					<comments>https://www.monlinux.net/2014/11/exporter-les-bases-donnees-mysql-partie-privee-ftp-via-cron/#respond</comments>
		
		<dc:creator><![CDATA[belgotux]]></dc:creator>
		<pubDate>Wed, 05 Nov 2014 20:14:17 +0000</pubDate>
				<category><![CDATA[Général]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[mysql]]></category>
		<guid isPermaLink="false">http://www.monlinux.net/?p=679</guid>

					<description><![CDATA[<p>C&#8217;est la premi&#232;re &#233;tape pour la sauvegarde de son site en 3 &#233;tapes et surement la plus importante pour votre CMS, WordPress, etc : La sauvegarde de la base de donn&#233;es. On va sauvegarder ses bases de donn&#233;es MySQL via... <a class="more-link" href="https://www.monlinux.net/2014/11/exporter-les-bases-donnees-mysql-partie-privee-ftp-via-cron/">Continue Reading &#8594;</a></p>
<p>L’article <a href="https://www.monlinux.net/2014/11/exporter-les-bases-donnees-mysql-partie-privee-ftp-via-cron/">Exporter les bases de données MySQL dans la partie privée de son FTP via cron</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>C&rsquo;est la première étape pour <a title="[dossier] Sauvegarder les données de son site en 3 étapes – backup" href="https://www.monlinux.net/2014/11/sauvegarder-les-donnees-site-en-3-etapes-backup/">la sauvegarde de son site en 3 étapes</a> et surement la plus importante pour votre CMS, WordPress, etc : La sauvegarde de la base de données.</p>
<p>On va sauvegarder ses bases de données MySQL via un script PHP qui pourra être interprété par la grande majorité des hébergeurs. Vous disposez d&rsquo;une fonction de tâche planifiée pour effectuer vos backups automatiquement. L&rsquo;hébergeur propose d&rsquo;envoyer par mail le retour du script, vous pourrez donc visionner le bon déroulement des backups. Ces dump MySQL seront placés dans<strong> la partie privée</strong> de votre FTP.</p>
<p>Voici le script PHP à mettre dans la partie privée de votre hébergement : <a href="https://www.monlinux.net/wp-content/uploads/backup_mysql.php_.txt">backup_mysql.php</a></p>
<ul>
<li>Pour le point backupdir : c&rsquo;est le répertoire utilisateur de votre compte chez l&rsquo;hébergeur. Si vous ne l&rsquo;avez pas, vous pouvez le savoir avec un &lsquo;pwd&rsquo; ou un &lsquo;echo $HOME&rsquo; mis dans un script dans une tâche planifiée. Mettez bien cela dans la <strong>partie privée du FTP</strong> de votre hébergement!</li>
<li>Pour mettre la tâche planifiée, cela dépend de votre interface d&rsquo;hébergeur. Mais tout hébergeur avec Cpanel le propose, ainsi qu&rsquo;OVH. Je vous conseille de faire un backup chaque jour de la base de données de votre site. S&rsquo;il est fort fréquenté, comme un blog WordPress avec commentaires, alors même plusieurs fois par jour&#8230;</li>
</ul>
<p><span id="more-679"></span></p>
<p>Voici le script en question :</p>
<pre class="lang:php decode:true">&lt;?php

$server='';		// serveur mysql
$login='';		//login mysql
$mdp='';		//mot de passe mysql
$backupdir='/home/a4327242/backup_db';		// pour savoir le répertoire local de votre hébergeur si c'est pas indiqué, faite la commande 'pwd' dans l'interface cron
$logfile='/home/a4327242/backup_db/backup_db.log';
$timezone='Europe/Brussels';	// pour les heures des fichier de logs

//un appel par base de données (souvent une seule pour un hébergeur)
backup_tables($server,$login,$mdp,$backupdir,$timezone,$logfile,'nom_base_de_donnees');


/* backup the db OR just a table */
function backup_tables($host,$user,$pass,$backupdir,$timezone,$log,$name,$tables = '*')
{
	$link = mysql_connect($host,$user,$pass);
	mysql_select_db($name,$link);
	
	//get all of the tables
	if($tables == '*')
	{
		$tables = array();
		$result = mysql_query('SHOW TABLES');
		while($row = mysql_fetch_row($result))
		{
			$tables[] = $row[0];
		}
	}
	else
	{
		$tables = is_array($tables) ? $tables : explode(',',$tables);
	}
	
	//cycle through
	foreach($tables as $table)
	{
		$result = mysql_query('SELECT * FROM '.$table);
		$num_fields = mysql_num_fields($result);
		
		$return.= 'DROP TABLE '.$table.';';
		$row2 = mysql_fetch_row(mysql_query('SHOW CREATE TABLE '.$table));
		$return.= "\n\n".$row2[1].";\n\n";
		
		for ($i = 0; $i &lt; $num_fields; $i++) 
		{
			while($row = mysql_fetch_row($result))
			{
				$return.= 'INSERT INTO '.$table.' VALUES(';
				for($j=0; $j&lt;$num_fields; $j++) 
				{
					$row[$j] = addslashes($row[$j]);
					$row[$j] = ereg_replace("\n","\\n",$row[$j]);
					if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
					if ($j&lt;($num_fields-1)) { $return.= ','; }
				}
				$return.= ");\n";
			}
		}
		$return.="\n\n\n";
	}
	
	//save file
	$date = new DateTime();
	$date-&gt;setTimeZone(new DateTimeZone($timezone));

	$filename=$backupdir.'/db-'.$name.'-'.$date-&gt;format('Y-m-d H:i').'-'.(md5(implode(',',$tables))).'.sql';
	$handle = fopen($filename,'w+');
	fwrite($handle,$return);
	fclose($handle);
	echo "File $filename create successful";
}

?&gt;</pre>
<p>Pour la 2e étape, <a title="Cloner son répertoire FTP pour sauvegarder son site web" href="https://www.monlinux.net/2014/11/cloner-repertoire-ftp-sauvegarder-site-web/">clonez le contenu de votre FTP chez vous comme backup</a>! Vos dump MySQL avec <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>L’article <a href="https://www.monlinux.net/2014/11/exporter-les-bases-donnees-mysql-partie-privee-ftp-via-cron/">Exporter les bases de données MySQL dans la partie privée de son FTP via cron</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.monlinux.net/2014/11/exporter-les-bases-donnees-mysql-partie-privee-ftp-via-cron/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cloner son répertoire FTP pour sauvegarder son site web</title>
		<link>https://www.monlinux.net/2014/11/cloner-repertoire-ftp-sauvegarder-site-web/</link>
					<comments>https://www.monlinux.net/2014/11/cloner-repertoire-ftp-sauvegarder-site-web/#respond</comments>
		
		<dc:creator><![CDATA[belgotux]]></dc:creator>
		<pubDate>Sun, 02 Nov 2014 19:05:31 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[ftp]]></category>
		<guid isPermaLink="false">http://www.monlinux.net/?p=671</guid>

					<description><![CDATA[<p>Dans le cadre de la sauvegarde de son site en 3 &#233;tapes, voici un script pour cloner le contenu de son FTP &#224; distance pour avoir ses backups d&#233;localis&#233;es. Ce script permet de se connecter en FTP ou SFTP sur... <a class="more-link" href="https://www.monlinux.net/2014/11/cloner-repertoire-ftp-sauvegarder-site-web/">Continue Reading &#8594;</a></p>
<p>L’article <a href="https://www.monlinux.net/2014/11/cloner-repertoire-ftp-sauvegarder-site-web/">Cloner son répertoire FTP pour sauvegarder son site web</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Dans le cadre de la <a title="[dossier] Sauvegarder les données de son site en 3 étapes – backup" href="https://www.monlinux.net/2014/11/sauvegarder-les-donnees-site-en-3-etapes-backup/">sauvegarde de son site en 3 étapes</a>, voici un script pour cloner le contenu de son FTP à distance pour avoir ses backups délocalisées.</p>
<p>Ce script permet de se connecter en FTP ou SFTP sur son hébergeur et d&rsquo;y reprendre le nouveau contenu (plus rapide) ou de faire un différentiel de tout le contenu existant et le rapatrier (plus sur mais beaucoup plus long).</p>
<p>Voici le lien vers le script : <a href="https://www.monlinux.net/wp-content/uploads/clone-ftp.sh_.txt">clone-ftp.sh</a></p>
<p>Je vous conseille de mettre les tâches cron suivantes pour optimiser le temps et la robustesse de vos backups :</p>
<pre class="lang:sh decode:true ">0 10 * * 1-6    root    nice -n 19 /usr/local/sbin/clone-ftp.sh --quick
0 10 * * 7      root    nice -n 19 /usr/local/sbin/clone-ftp.sh</pre>
<ul>
<li>Le backup est fait pour le nouveau contenu chaque jour (pour les dump mysql de la nuit surtout) pour être rapide</li>
<li>Le backup complet est fait chaque semaine (mise à jour de plugin ou du CRM par exemple)</li>
<li>le nice est mis au plus bas dans les priorités noyau</li>
</ul>
<p><span id="more-671"></span></p>
<p>Voici les détails du script :</p>
<pre class="lang:sh decode:true ">#!/bin/bash

dossier_local="/data/clone-ftp"

server="ftp.server"							#server name
source_distant=""							#remote directory to backup (let empty for all the ftp root)
credential_file="/data/clone-ftp.secret"	#format user:password
logfile="/var/log/clone-ftp.log"			#logfile
foldersExcluded="backup_ftp
public_html/private/backups
public_html/monlinux.net/files"				#exclude directory or files
quick="no"									#value "on"/"yes" or "off" to only check only new files, not modified (quicker)

#test if local directory exist
if [ ! -d "$dossier_local" ] ; then
	echo "Error : directory $dossier_local don't exist!" &gt;&amp;2
	exit 1
fi

#test if credential file exist
if [ ! -e "$credential_file" ] ; then
	echo "Error : FTP credential file $credential_file don't exist!" &gt;&amp;2
	exit 1
fi

#get args to check about quick mode
if [ $# == 1 ] ; then
	if [ "$1" == "--quick" ] ; then quick="yes"
	  else echo "bad args, use --quick for only check new files" &gt;&amp;2 &amp;&amp; exit 1
	fi
fi

credential=$(cat $credential_file)

#get excluded
if [ "$foldersExcluded" != "" ] ; then
	while read exclude ; do
		formatFoldersExcluded="$formatFoldersExcluded --exclude '$exclude'"
	done &lt; &lt;(echo "$foldersExcluded")
fi

#get quick mode : only add new files, don't compare files modified
if [ "$quick" == "yes" ] || [ "$quick" == "on" ] ; then quickValue='--only-missing' ; fi

#lftp -c mirror --continue --delete $quickValue --log="$logfile" "$formatFoldersExcluded" ftp://$credential@$server/$source_distant $dossier_local
lftp -u $credential $server &lt;&lt;EOF
  mirror --continue --delete $quickValue --log=$logfile $formatFoldersExcluded /$source_distant $dossier_local
EOF

exit $?</pre>
<p>Pour la suite, il faut aller à la 3e et dernière étape : <a title="Avoir un historique des données FTP en local via rdiff-backup" href="https://www.monlinux.net/2014/11/avoir-historique-donnees-ftp-en-local-via-rdiff-backup/">backup des données FTP en local pour l&rsquo;historique via rdiff-backup</a>.</p>
<p>L’article <a href="https://www.monlinux.net/2014/11/cloner-repertoire-ftp-sauvegarder-site-web/">Cloner son répertoire FTP pour sauvegarder son site web</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.monlinux.net/2014/11/cloner-repertoire-ftp-sauvegarder-site-web/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Sauvegarder ses mails gmail ou IMAP en local</title>
		<link>https://www.monlinux.net/2014/09/sauvegarder-ses-mails-gmail-imap-en-local/</link>
					<comments>https://www.monlinux.net/2014/09/sauvegarder-ses-mails-gmail-imap-en-local/#respond</comments>
		
		<dc:creator><![CDATA[belgotux]]></dc:creator>
		<pubDate>Tue, 23 Sep 2014 19:30:06 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Sécurité]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[getmail]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[imap]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[sauvegarde]]></category>
		<guid isPermaLink="false">http://www.monlinux.net/?p=556</guid>

					<description><![CDATA[<p>&#201;tant donn&#233; qu&#8217;une erreur du c&#244;t&#233; Google ou tout autre service de mails est possible, il est pr&#233;f&#233;rable de sauvegarder ses mails en local, on ne sais jamais&#8230;. Je voulais sauvegarder mes mails avec un seul fichier par mail. Donc... <a class="more-link" href="https://www.monlinux.net/2014/09/sauvegarder-ses-mails-gmail-imap-en-local/">Continue Reading &#8594;</a></p>
<p>L’article <a href="https://www.monlinux.net/2014/09/sauvegarder-ses-mails-gmail-imap-en-local/">Sauvegarder ses mails gmail ou IMAP en local</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Étant donné qu&rsquo;une erreur du côté Google ou tout autre service de mails est possible, il est préférable de sauvegarder ses mails en local, on ne sais jamais&#8230;.</p>
<p>Je voulais sauvegarder mes mails avec un seul fichier par mail. Donc sauvegarder le fichier de Thunderberd n&rsquo;était pas envisageable, et il me faillait quelque chose d&rsquo;automatique. Je me suis donc servi de mon Banana pi sous Debian Wheezy. Le système le plus simple étant d&rsquo;utiliser le logiciel Getmail4.</p>
<p><span id="more-556"></span></p>
<h2>Configuration de Getmail4</h2>
<p>J&rsquo;ai testé avec Gmail et OVH, cela fonctionne sans souci.</p>
<p><strong>Faites quand même attention et lisez le man, Getmail4 sert à la base pour synchroniser ses mails distants et locaux. Donc une fausse manip peut également supprimer vos mails distants.</strong></p>
<p>Getmail4 à l&rsquo;avantage de tenir à jour un fichier de status pour savoir quels mails sont déjà synchronisés en local. Il va donc chercher les nouveaux de manière incrémentale.</p>
<p>Voici un exemple de fichier de configuration IMAP pour Gmail. Remplacer l&rsquo;utilisateur local « localuser » par le votre :</p>
<pre class="lang:default decode:true">        [retriever]
        type = SimpleIMAPSSLRetriever
        server = imap.googlemail.com
        port = 993
        username = &#116;&#101;st&#64;&#116;&#101;s&#116;.&#116;&#108;d
        password =
        mailboxes = ("INBOX",)

        [destination]
        type = Maildir
        path = /stock/backup_mails/mails1/
        user = localuser

        [options]
        read_all = false
        delivered_to = false
        received = false
        verbose = 2
        message_log = /var/log/backup_mails/mail1.log</pre>
<p>Créez les répertoires nécessaires et les droits associés :</p>
<pre class="lang:sh decode:true ">mkdir -p belgotux-mails/cur belgotux-mails/new belgotux-mails/tmp
chown -R localuser belgotux-mails</pre>
<p>Pour lancer différentes configurations en une seule commande :</p>
<pre class="lang:sh decode:true ">/usr/bin/getmail -l -r /stock/protected-data/backup_mails/belgotux-getmail.conf -r /stock/protected-data/backup_mails/gaetan110589-getmail.conf -r /stock/protected-data/backup_mails/brogniaux.gaetan-getmail.conf -r /stock/protected-data/backup_mails/ovh-getmail.conf -g /stock/protected-data/backup_mails</pre>
<h2>Status des mails</h2>
<p>Le status des mails déjà synchronisés est mis dans un fichier binaire type « oldmail-imap.googlemail.com-993-xxx-[Gmail].Tous les messages ». Si vous voulez relancer une synchronisation complète, il faut supprimer ce fichier en plus des archives mails de /stock/backup_mails/mails1/</p>
<p class="lang:sh decode:true   ">
<p>L’article <a href="https://www.monlinux.net/2014/09/sauvegarder-ses-mails-gmail-imap-en-local/">Sauvegarder ses mails gmail ou IMAP en local</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.monlinux.net/2014/09/sauvegarder-ses-mails-gmail-imap-en-local/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/

Mise en cache de page à l’aide de Disk: Enhanced 
Mise en cache de la base de données de 31/52 requêtes en 0.026 secondes utilisant Disk

Served from: www.monlinux.net @ 2026-07-12 11:58:59 by W3 Total Cache
-->