<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Another Home Page Blog - rsync</title><link href="https://blog.anotherhomepage.org/" rel="alternate"></link><link href="https://blog.anotherhomepage.org/feed/tag/rsync/atom" rel="self"></link><id>https://blog.anotherhomepage.org/</id><updated>2017-12-21T16:50:00+01:00</updated><entry><title>rsnapshot, le robot de sauvegarde</title><link href="https://blog.anotherhomepage.org/post/2017/12/21/rsnapshot-robot-sauvegarde/" rel="alternate"></link><published>2017-12-21T16:50:00+01:00</published><updated>2017-12-21T16:50:00+01:00</updated><author><name>Nils Ratusznik</name></author><id>tag:blog.anotherhomepage.org,2017-12-21:/post/2017/12/21/rsnapshot-robot-sauvegarde/</id><summary type="html">&lt;p&gt;&lt;img alt="&amp;quot;vélo en pièces détachées&amp;quot;" src="https://blog.anotherhomepage.org/public/spareparts.jpg"&gt;Suite au &lt;a href="/post/en-retard#c265"&gt;commentaire de Xate&lt;/a&gt; dans &lt;a href="/post/en-retard"&gt;un récent billet&lt;/a&gt;, aujourd'hui un billet sur &lt;a href="http://rsnapshot.org/" title="rsnapshot"&gt;rsnapshot&lt;/a&gt;, un logiciel de sauvegarde incrémentale basé sur rsync. Si j'en fais un billet, c'est tout simplement car c'est ce que j'ai mis en place pour sauvegarder mon infrastructure.&lt;/p&gt;
&lt;p&gt;J'avoue ne pas trop savoir quoi raconter sur …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;img alt="&amp;quot;vélo en pièces détachées&amp;quot;" src="https://blog.anotherhomepage.org/public/spareparts.jpg"&gt;Suite au &lt;a href="/post/en-retard#c265"&gt;commentaire de Xate&lt;/a&gt; dans &lt;a href="/post/en-retard"&gt;un récent billet&lt;/a&gt;, aujourd'hui un billet sur &lt;a href="http://rsnapshot.org/" title="rsnapshot"&gt;rsnapshot&lt;/a&gt;, un logiciel de sauvegarde incrémentale basé sur rsync. Si j'en fais un billet, c'est tout simplement car c'est ce que j'ai mis en place pour sauvegarder mon infrastructure.&lt;/p&gt;
&lt;p&gt;J'avoue ne pas trop savoir quoi raconter sur ce logiciel, car de nombreuses documentations existent déjà, quasiment pour chaque distribution :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://doc.ubuntu-fr.org/rsnapshot" title="&amp;quot;documentation"&gt;chez Ubuntu-fr&lt;/a&gt; ;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wiki.archlinux.org/index.php/Rsnapshot" title="&amp;quot;documentation"&gt;chez ArchLinux&lt;/a&gt; ;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wiki.gentoo.org/wiki/Rsnapshot" title="&amp;quot;documentation"&gt;chez Gentoo&lt;/a&gt; ;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wiki.alpinelinux.org/wiki/Rsnapshot" title="&amp;quot;documentation"&gt;chez Alpine Linux&lt;/a&gt; ;&lt;/li&gt;
&lt;li&gt;encore pour Ubuntu, &lt;a href="https://www.digitalocean.com/community/tutorials/how-to-install-rsnapshot-on-ubuntu-12-04" title="&amp;quot;tutoriel"&gt;un tutoriel chez Digital Ocean&lt;/a&gt; ;&lt;/li&gt;
&lt;li&gt;cette fois-ci pour Debian, un autre &lt;a href="https://www.howtoforge.com/set-up-rsnapshot-archiving-of-snapshots-and-backup-of-mysql-databases-on-debian" title="&amp;quot;tutoriel"&gt;tutoriel rsnapshot pour MySQL&lt;/a&gt;, de chez Howtoforge.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Je vais donc parler de quelques points de ma configuration en particulier. La première particularité de celle-ci est que j'ai choisi d'installer rsnapshot sur une machine (en fait une jail FreeBSD sur mon NAS FreeNAS) et de l'utiliser en mode "robot de sauvegarde", c'est-à-dire qu'il va se connecter sur toutes les machines à sauvegarder via SSH pour effectuer les sauvegardes. J'y vois l'avantage que je n'ai qu'une seule configuration à modifier, et un utilisateur à configurer sur mes serveurs (accompagné, bien entendu, de sa configuration sudo et de la clé SSH).&lt;/p&gt;
&lt;p&gt;Par exemple, pour la sauvegarde du Raspberry Pi qui fait des bulk builds :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;backup&lt;span class="w"&gt; &lt;/span&gt;rsnapshot@netpi2:/etc/&lt;span class="w"&gt;                                          &lt;/span&gt;netpi2/&lt;span class="w"&gt;         &lt;/span&gt;+rsync_long_args&lt;span class="o"&gt;=&lt;/span&gt;--rsync-path&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;/usr/pkg/bin/sudo /usr/pkg/bin/rsync&amp;#39;&lt;/span&gt;
backup&lt;span class="w"&gt; &lt;/span&gt;rsnapshot@netpi2:/usr/pkg/etc/&lt;span class="w"&gt;                                  &lt;/span&gt;netpi2/&lt;span class="w"&gt;         &lt;/span&gt;+rsync_long_args&lt;span class="o"&gt;=&lt;/span&gt;--rsync-path&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;/usr/pkg/bin/sudo /usr/pkg/bin/rsync&amp;#39;&lt;/span&gt;
backup&lt;span class="w"&gt; &lt;/span&gt;rsnapshot@netpi2:/var/log/&lt;span class="w"&gt;                                      &lt;/span&gt;netpi2/&lt;span class="w"&gt;         &lt;/span&gt;+rsync_long_args&lt;span class="o"&gt;=&lt;/span&gt;--rsync-path&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;/usr/pkg/bin/sudo /usr/pkg/bin/rsync&amp;#39;&lt;/span&gt;
backup&lt;span class="w"&gt; &lt;/span&gt;rsnapshot@netpi2:/srv/sandbox/pkgsrc-current/usr/pbulk/etc/&lt;span class="w"&gt;     &lt;/span&gt;netpi2/&lt;span class="w"&gt;         &lt;/span&gt;+rsync_long_args&lt;span class="o"&gt;=&lt;/span&gt;--rsync-path&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;/usr/pkg/bin/sudo /usr/pkg/bin/rsync&amp;#39;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;On peut aussi noter que j'ai choisi d'ajouter des options à rsync selon mes machines, car celles-ci peuvent être de différents OS, ce qui fait que rsync et sudo ne se trouvent pas toujours au même endroit.&lt;/p&gt;
&lt;p&gt;Du côté de la rétention et des intervalles de sauvegarde, j'ai fait très simple :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;une sauvegarde par jour (daily);&lt;/li&gt;
&lt;li&gt;370 jours de rétention.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;370 jours peut sembler un peu abusé, mais la force de rsnapshot est dans son utilisation des liens (hardlinks) combinée à celle de rsync, qui rend les sauvegardes rapides, mais aussi moins consommatrices en espace disque car dédupliquées. Par exemple pour le serveur web de ce blog :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;# du -csh daily.0/vhost2/ daily.1/vhost2/&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;17G&lt;span class="w"&gt;    &lt;/span&gt;daily.0/vhost2/
&lt;span class="m"&gt;2&lt;/span&gt;.3G&lt;span class="w"&gt;    &lt;/span&gt;daily.1/vhost2/
&lt;span class="w"&gt; &lt;/span&gt;19G&lt;span class="w"&gt;    &lt;/span&gt;total
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;La restauration se fait très simplement aussi, puisqu'il s'agit de fichiers tout ce qu'il y a de plus classiques, ou de liens.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Vous avez aimé cet article ? Alors partagez-le sur les réseaux sociaux !&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Crédit photo : &lt;a href="https://www.flickr.com/photos/ritpir88/35264463313/in/photolist-VJcAma-5K3eF2-owvd5T-U46ZAF-oc8krN-owhDzo-otGXrC-b6RQDv-WPNxGG-otqL4r-ov2Dg3-otEoq9-ouD1K4-W8PR2f-o2uUFL-ocy4bx-ormpmj-6MBUNa-oyfnQv-odqyci-SU7dXw-ocSV29-oeZ2iy-SwkNTe-RCRYTq-w7KHtd-oye1Pp-oeZD6q-72SJuQ-ouQij4-c12JYW-od4qo2-wPnb4x-7rNLdi-ous2vd-oy6YDr-od7TTZ-ouHwxn-otF8wG-ov2ccu-ocUjQZ-orDtxb-ouj5n3-od63dh-ot696C-ocNRAC-oupxQD-VtcZkA-4jym8u-Wm1wvu" title="&amp;quot;Spare"&gt;Ritva Pirinen - Spare Parts&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;</content><category term="Logiciels libres"></category><category term="blogmas"></category><category term="blogmas17"></category><category term="blogmas2017"></category><category term="rsnapshot"></category><category term="rsync"></category><category term="sauvegarde"></category></entry><entry><title>Créer un miroir CentOS pour les updates</title><link href="https://blog.anotherhomepage.org/post/2008/03/23/Creer-un-miroir-CentOS-pour-les-updates/" rel="alternate"></link><published>2008-03-23T14:55:00+01:00</published><updated>2008-03-23T14:55:00+01:00</updated><author><name>Nils Ratusznik</name></author><id>tag:blog.anotherhomepage.org,2008-03-23:/post/2008/03/23/Creer-un-miroir-CentOS-pour-les-updates/</id><summary type="html">&lt;p&gt;Et tu sync, et tu sync, et tu wget&lt;/p&gt;
&lt;p&gt;Hier, j'ai commencé à me dire que ça serait sympa de rendre encore plus rapide mes installations de machines virtuelles CentOS 5. Donc, avant d'attaquer le trifouillage de mes kickstarts afin d'appliquer mes configurations de manière automatique, j'en suis venu à …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Et tu sync, et tu sync, et tu wget&lt;/p&gt;
&lt;p&gt;Hier, j'ai commencé à me dire que ça serait sympa de rendre encore plus rapide mes installations de machines virtuelles CentOS 5. Donc, avant d'attaquer le trifouillage de mes kickstarts afin d'appliquer mes configurations de manière automatique, j'en suis venu à la conclusion qu'avoir le dépôt des mises à jour en local serait plus rapide que de devoir tout récupérer sur Internet.&lt;/p&gt;
&lt;p&gt;Donc, il me faut me synchroniser avec un miroir. Comme je suis chez Free, j'ai voulu utiliser leur miroir. Oui mais, ce n'est qu'un miroir FTP. Et la plupart des scripts de synchronisation de miroir utilisent &lt;a href="http://rsync.samba.org/"&gt;rsync&lt;/a&gt;. Je me suis donc rabattu sur le miroir de &lt;a href="http://www.ipsl.jussieu.fr/"&gt;l'IPSL Jussieu&lt;/a&gt; qui possède un mirroir &lt;a href="http://distrib-coffee.ipsl.jussieu.fr/pub/linux/"&gt;http&lt;/a&gt;, &lt;a href="ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/"&gt;ftp&lt;/a&gt; et &lt;a href="rsync://distrib-coffee.ipsl.jussieu.fr/pub/linux/"&gt;rsync&lt;/a&gt;. Génial ! Quelques instants plus tard, j'adapte &lt;a href="http://lists.centos.org/pipermail/centos-mirror/2005-April/000936.html"&gt;ce script&lt;/a&gt; qui donne ceci :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/bin/bash&lt;/span&gt;

&lt;span class="c1"&gt;#################################################################################&lt;/span&gt;
&lt;span class="c1"&gt;#                                                                               #&lt;/span&gt;
&lt;span class="c1"&gt;# CentOS mirror syncer                                                          #&lt;/span&gt;
&lt;span class="c1"&gt;# Comes from :                                                                  #&lt;/span&gt;
&lt;span class="c1"&gt;#                                                                               #&lt;/span&gt;
&lt;span class="c1"&gt;# http://lists.centos.org/pipermail/centos-mirror/2005-April/000936.html        #&lt;/span&gt;
&lt;span class="c1"&gt;# http://wiki.monserveurperso.com/wakka.php?wiki=MirroringFTP                   #&lt;/span&gt;
&lt;span class="c1"&gt;# man wget                                                                      #&lt;/span&gt;
&lt;span class="c1"&gt;#                                                                               #&lt;/span&gt;
&lt;span class="c1"&gt;#################################################################################&lt;/span&gt;

&lt;span class="nv"&gt;RSYNC&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;which&lt;span class="w"&gt; &lt;/span&gt;rsync&lt;span class="sb"&gt;`&lt;/span&gt;
&lt;span class="nv"&gt;RSYNC_OPTS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;-aHv --delete --bwlimit=512 &amp;quot;&lt;/span&gt;
&lt;span class="nv"&gt;CHOWN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;which&lt;span class="w"&gt; &lt;/span&gt;chown&lt;span class="sb"&gt;`&lt;/span&gt;
&lt;span class="nv"&gt;CHMOD&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;which&lt;span class="w"&gt; &lt;/span&gt;chmod&lt;span class="sb"&gt;`&lt;/span&gt;
&lt;span class="nv"&gt;MIRROR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;rsync://distrib-coffee.ipsl.jussieu.fr/pub/linux/centos/5/updates/i386/&amp;quot;&lt;/span&gt;
&lt;span class="nv"&gt;LOCAL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/home/ftp/mirrors/centos/5/updates/i386/&amp;quot;&lt;/span&gt;
&lt;span class="nv"&gt;PIDFILE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/var/run/centosmirror.pid&amp;quot;&lt;/span&gt;

&lt;span class="c1"&gt;# Don&amp;#39;t run it twice...&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-f&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$PIDFILE&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;then&lt;/span&gt;
&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="nv"&gt;RUNPID&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;cat&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$PIDFILE&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;
&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;ps&lt;span class="w"&gt; &lt;/span&gt;-p&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$RUNPID&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;then&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;CentOS Mirror is already running...&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nb"&gt;exit&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;
&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="k"&gt;else&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;CentOS Mirror pid found but process dead, cleaning up&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;rm&lt;span class="w"&gt; &lt;/span&gt;-f&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$PIDFILE&lt;/span&gt;
&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;span class="k"&gt;else&lt;/span&gt;
&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;No CentOS Mirror Process Detected&amp;quot;&lt;/span&gt;
&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$PIDFILE&lt;/span&gt;

&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-n&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;CentOS Mirror Started at &amp;quot;&lt;/span&gt;
date

&lt;span class="c1"&gt;# Download, set up rights&lt;/span&gt;
&lt;span class="nv"&gt;$RSYNC&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$RSYNC_OPTS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$MIRROR&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$LOCAL&lt;/span&gt;
&lt;span class="nv"&gt;$CHOWN&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-R&lt;span class="w"&gt; &lt;/span&gt;apache:apache&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$LOCAL&lt;/span&gt;
&lt;span class="nv"&gt;$CHMOD&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-R&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;755&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$LOCAL&lt;/span&gt;

&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-n&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;CentOS Mirror Ended at &amp;quot;&lt;/span&gt;
date
rm&lt;span class="w"&gt; &lt;/span&gt;-f&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$PIDFILE&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Ca, c'était la version rsync. Et si on est derrière un proxy, et qu'on ne peut pas faire du rsync? Pour le moment je me suis concentré sur ftp, mais ce script devrait tourner pour http :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/bin/bash&lt;/span&gt;

&lt;span class="c1"&gt;#################################################################################&lt;/span&gt;
&lt;span class="c1"&gt;#                                                                               #&lt;/span&gt;
&lt;span class="c1"&gt;# CentOS mirror syncer                                                          #&lt;/span&gt;
&lt;span class="c1"&gt;# Comes from :                                                                  #&lt;/span&gt;
&lt;span class="c1"&gt;#                                                                               #&lt;/span&gt;
&lt;span class="c1"&gt;# http://lists.centos.org/pipermail/centos-mirror/2005-April/000936.html        #&lt;/span&gt;
&lt;span class="c1"&gt;# http://wiki.monserveurperso.com/wakka.php?wiki=MirroringFTP                   #&lt;/span&gt;
&lt;span class="c1"&gt;# man wget                                                                      #&lt;/span&gt;
&lt;span class="c1"&gt;#                                                                               #&lt;/span&gt;
&lt;span class="c1"&gt;#################################################################################&lt;/span&gt;

&lt;span class="c1"&gt;# Variables&lt;/span&gt;

&lt;span class="nv"&gt;WGET&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;which&lt;span class="w"&gt; &lt;/span&gt;wget&lt;span class="sb"&gt;`&lt;/span&gt;
&lt;span class="nv"&gt;WGET_OPTS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;-m --limit-rate=512k -nH --cut-dir 5&amp;quot;&lt;/span&gt;
&lt;span class="nv"&gt;CHOWN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;which&lt;span class="w"&gt; &lt;/span&gt;chown&lt;span class="sb"&gt;`&lt;/span&gt;
&lt;span class="nv"&gt;CHMOD&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;which&lt;span class="w"&gt; &lt;/span&gt;chmod&lt;span class="sb"&gt;`&lt;/span&gt;
&lt;span class="nv"&gt;MIRROR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;ftp://ftp.free.fr/mirrors/ftp.centos.org/5/updates/i386/*&amp;quot;&lt;/span&gt;
&lt;span class="nv"&gt;LOCAL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/home/ftp/mirrors/centos/5/updates/i386/&amp;quot;&lt;/span&gt;
&lt;span class="nv"&gt;PIDFILE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/var/run/centosmirror.pid&amp;quot;&lt;/span&gt;

&lt;span class="c1"&gt;# Don&amp;#39;t run it twice...&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-f&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="nv"&gt;$PIDFILE&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;then&lt;/span&gt;
&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="nv"&gt;RUNPID&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;cat&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$PIDFILE&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;
&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;ps&lt;span class="w"&gt; &lt;/span&gt;-p&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$RUNPID&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;then&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;CentOS Mirror is already running...&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nb"&gt;exit&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;
&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="k"&gt;else&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;CentOS Mirror pid found but process dead, cleaning up&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;rm&lt;span class="w"&gt; &lt;/span&gt;-f&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$PIDFILE&lt;/span&gt;
&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;span class="k"&gt;else&lt;/span&gt;
&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;No CentOS Mirror Process Detected&amp;quot;&lt;/span&gt;
&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$PIDFILE&lt;/span&gt;

&lt;span class="c1"&gt;# wget + ftp = .listing files&lt;/span&gt;
find&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$LOCAL&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-name&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;.listing&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-delete

&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-n&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;CentOS Mirror Started at &amp;quot;&lt;/span&gt;
date

&lt;span class="c1"&gt;# Download, set up rights&lt;/span&gt;
&lt;span class="nv"&gt;$WGET&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$WGET_OPTS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$MIRROR&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-P&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$LOCAL&lt;/span&gt;
&lt;span class="nv"&gt;$CHOWN&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-R&lt;span class="w"&gt; &lt;/span&gt;apache:apache&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$LOCAL&lt;/span&gt;
&lt;span class="nv"&gt;$CHMOD&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-R&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;755&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$LOCAL&lt;/span&gt;

&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-n&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;CentOS Mirror Ended at &amp;quot;&lt;/span&gt;
date
rm&lt;span class="w"&gt; &lt;/span&gt;-f&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$PIDFILE&lt;/span&gt;
find&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$LOCAL&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-name&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;.listing&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-delete
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;On remarquera que c'est grosso modo la même chose, la version wget générant des fichiers .listing pour le téléchargement récursif, je les efface avant et après coup, au cas où.Comme mon miroir est aussi dispo en http, je rend le tout accessible pour l'utilisateur apache. Ce dernier script reste cependant à améliorer, car contrairement à rsync, il n'efface pas les fichiers présents en local mais disparus du miroir distant.&lt;/p&gt;</content><category term="Logiciels libres"></category><category term="CentOS"></category><category term="Linux"></category><category term="rsync"></category><category term="wget"></category></entry></feed>