bash:rsync-roulement
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.
- 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'
bash/rsync-roulement.txt · Dernière modification : 2017-03-22 23:32 de 127.0.0.1