Skip to content

Instantly share code, notes, and snippets.

@Develle
Created September 10, 2012 13:00
Show Gist options
  • Save Develle/3690781 to your computer and use it in GitHub Desktop.
Save Develle/3690781 to your computer and use it in GitHub Desktop.
Backup rotate
#!/bin/bash
# repartition des sauvegardes
# on conserve 1/jour 1/semaine 1/mois
WEEK=$( date +%Y-%m-%d --date='now -7 day' )
WEEK_S=$( date -d"$WEEK" '+%s')
for file in $(ls save/week )
do
DATE=$(echo ${file%%.*} | awk -F "-" '{ print $2"-"$3"-"$4 }')
DATE_S=$( date -d"$DATE" '+%s')
if(( DATE_S < WEEK_S ))
then
new_file=$(echo $file | awk -F "-" '{ print $1"-"$2"-"$3".sql" }')
# sauvegarde un fichier par semaine pour le mois en cours
nb_week=$( ls save/month | wc -l )
if(( nb_week == 4))
then
nb_week=1
# sauvegarde un fichier par mois
mv save/month/4/* save/year/
rm -Rf save/month/*
else
nb_week=$(($nb_week + 1))
fi
mkdir save/month/$nb_week
mv save/week/$file save/month/$nb_week/$new_file
fi
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment