Kewix blog - Tag - sshTout un tas de choses utiles sur l'administration de systèmes linux. En français!2016-03-04T10:04:24+01:00Mickaël Fradinurn:md5:4c0c1092a569c03a14e39ce48d4e98acDotclearFaire une copie sécurisée et rapide d'un serveur à un autre simplement avec rsync et sshurn:md5:eac36bcd51b466d69c29e77e0337a65b2008-12-04T13:02:00+01:002008-12-10T18:41:01+01:00Mickael FradinServeurbackuplinuxrsyncssh <h2>Pré requis</h2>
<p>Avoir rsync et ssh d'installé sur sa machine. Si c'est pas le cas installer les paquets suivants (cas d'une machine sous Debian ou Unbuntu) :</p>
<pre>
sudo apt-get install rsync
sudo apt-get install ssh
</pre>
<h2>Pairage pour ne pas avoir a rentrer le mot de passe à chaque fois (optionnel)</h2>
<p>Manipulation à faire avec les privilèges root (sudo -s) sur la machine locale:
Dans mon cas on utilise un port spécial (222) pour ssh, il faut donc le spécifier dans la commande.</p>
<pre>
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub | ssh -p 222 root@monserveurdistant.fr "cat - ~/.ssh/authorized_keys"
</pre>
<p>Mettez une passphrase vide si vous ne voulez pas saisir le mot de passe à chaque fois</p>
<h2>Envoi des données ou récupération des données</h2>
<p>Enfin on utilise rsync avec compression (-z) en mode verbeux (-v) et archive (-a) et on se connecte sur la machine sur le port spécial (222).
Avec ces options rsync va faire la différence entre les deux répertoires et n'envoyer que les fichiers différent ce qui permet de gagner un temps énorme lorsque l'on veut synchroniser deux serveurs régulièrement.
Rsync a le même fonctionnement que scp c'est à dire source à gauche et destination à droite, ainsi l'exemple suivant envoi les données sur le serveur distant.</p>
<pre>
rsync -avz -e 'ssh -p 222' --progress /var/www root@monserveurdistant.fr:/var/www
</pre>
<p>Mais on peut très bien faire l'inverse et récupérer les données du serveur distant en local</p>
<pre>
rsync -avz -e 'ssh -p 222' --progress root@monserveurdistant.fr:/var/www /var/www
</pre>
<h2>Synchronisation programmée avec CRON</h2>
<p>Ça peut être pratique de faire ça tous les jours ou toutes les heures donc le plus simple c'est de rajouter une ligne CRON.</p>
<pre>
crontab -e
</pre>
<p>Et ajoutez pour une synchro tous les jours à 4h du matin</p>
<pre>
00 4 * * * rsync -avz -e 'ssh -p 222' --progress root@monserveurdistant.fr:/var/www /var/www
</pre>
<p>Et voilà !</p>