Rsync

Petit recyclage d’un article que j’avais écrit il y de ça quelques temps sur mon ancienne plateforme de blog..

Quand on en a marre de bosser, on fait des petits scripts ;D
En voilà qui sera peut-être utile à quelqu’un un jour. C’est un petit script sh qui permet de faire un backup incrémental (pas de copie complète, seuls les fichiers modifiés sont sauvegardés) et les les fichiers originaux (avant backup) sont copiés dans sur un autre disque faisant office d’archive. Le script supprime également toutes les archives de plus de 30 jours.
Le tout utilise rsync. c’est vraiment rapide et efficace, le raid du pauvre en quelques sorte.

#!/bin/sh
 
JOUR=`date +%Y-%m-%d`
 
echo "Sauvegarde lancée"
date
 
/usr/bin/rsync --progress --force --stats  -h --ignore-errors --delete --backup --backup-dir=/media/archive/backup/$JOUR/ -av /media/data/ /media/backup/data/
 
/usr/bin/rsync --progress --force -h --stats --ignore-errors --delete --backup --backup-dir=/media/archive/b3nz3n/$JOUR/ -av /home/b3nz3n/ /media/backup/b3nz3n/
 
/usr/bin/rsync --progress --force -h --stats --ignore-errors --delete --backup --backup-dir=/media/archive/Audio/$JOUR/ -av /media/ntfs/Audio/ /media/backup/Audio/
 
## On detruit les fichiers vieux de plus de 30 jours
find /media/archive/ -atime +30 -exec rm -rf {} ;
echo "Sauvegarde terminée"
date

Il vous suffit de l’adapter à vos besoins: –backup-dir=/media/archive/xx/$JOUR/ est le répertoire dans lequel les fichiers seront archivés, /media/ntfs/xx/ le répertoire à sauvegarder et /media/backup/xx/ le répertoire de destination.

Il est à noter que rsync synchronise dans les deux sens, c’est à dire que si un fichier est modifié dans le répertoire de destination, celui ci le sera dans le répertoire d’origine. Il est donc possible d’étendre l’utilisation de rsync pour par exemple, synchroniser deux pcs (un sous Windows 7 et l’autre sous debian) très facilement. A titre d’exemple voici le petit script qui me permet de synchroniser mon répertoire de travail entre mes deux pcs. Le répertoire sous windows étant partagé via le partage de fichier windows.

#!/bin/bash
echo "Sync lance"
date
mount -t cifs //192.168.0.2/Work /mnt/KAREN/ -o user=B3nZ3n,password=password,workgroup=WORKGROUP,ip=192.168.0.2
rsync --progress --force --stats -h --ignore-errors --delete -av ~/Work/ /mnt/KAREN/
echo "Sync termine"
date

Tags : , , , , , ,

Laisser un commentaire