Outils pour utilisateurs

Outils du site


bash:rsync-roulement

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
bash:rsync-roulement [2017-03-22 22:30] – supprimée mitsubash:rsync-roulement [2017-03-22 22:32] (Version actuelle) – ancienne révision (2017/03/22 22:30) restaurée mitsu
Ligne 1: Ligne 1:
 +====== Archivage par roulement et rsync ======
  
 +Ce script permet d'archiver un dossier source par "roulement" à la place de l'archive la plus ancienne. Cela donne des archives complètes, datées, et rapidement traitées si la majorité des fichiers sont inchangés.
 +
 +NB: ce script suppose que:
 +  * on travaille dans le dossier "/sauvegardes"
 +  * le dossier "incoming" contient la version actuelle des fichiers
 +  * le dossier "archives" contient PLUSIEURS sous-dossiers, un par jour, nommés style "2014-12-09"
 +
 +Exemple: le script est exécuté le 10 décembre 2014 et le dossier archives contient 5 archives journalières. Le script renomme donc "2014-12-05" en "2014-12-10" et synchronise les fichiers de "incoming" vers celle-ci. Le lendemain, "2014-12-06" est renommée "2014-12-11", synchro, etc etc.
 +
 +<file bash archivage.sh>
 +echo "Changing path.."
 +cd "/sauvegardes/"
 +
 +if [ -f 'archivage.lock.txt' ]; then
 + echo "Lockfile found, exit"
 + exit
 +fi
 +
 +echo "Setting lockfile"
 +touch 'archivage.lock.txt'
 +
 +filename=$(date +%Y-%m-%d)
 +
 +echo "Finding oldest archive"
 +oldest=$(ls -tr1 "archives/" | head -1)
 +echo "Oldest is $oldest, moving to $filename"
 +
 +mv "archives/$oldest" "archives/$filename"
 +
 +echo "Now doing rsync archive"
 +rsync -a --progress --delete-before --no-inc-recursive "incoming/" "archives/$filename/"
 +touch "archives/$filename/"
 +
 +echo "Finished, removing lock and exit"
 +rm 'archivage.lock.txt'
 +
 +</file>
bash/rsync-roulement.1490221808.txt.gz · Dernière modification : (modification externe)