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:
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.
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'