From 28e39987921d7d7aeb6019837adf0d6b835b03c4 Mon Sep 17 00:00:00 2001 From: Will Bradley Date: Sun, 22 Sep 2013 09:38:09 -0700 Subject: [PATCH] Create rotate.sh From http://thehappyengineer.blogspot.com/2012/07/automated-rotation-backup-script.html --- rotate.sh | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 rotate.sh diff --git a/rotate.sh b/rotate.sh new file mode 100644 index 0000000..99d2fc2 --- /dev/null +++ b/rotate.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +# Author: Marcello Torchio + +# Set the directory name that you wish to backup +DIRTOBACKUP=$1 + +# Set up the backup destination directory +BACKUPDIRDEST=$2 + +# Set up the number of days for backup rotation +NUMDAYS=7; + +# Start logging +echo "["$(date)"] - Started Backup" +# Check if the destination dir exists. If not create it +if [ ! -d "$BACKUPDIRDEST/"$(date +"%m-%d-%Y")"/" ]; then + # Creates directory for today's backup + mkdir $BACKUPDIR/"$(date +"%m-%d-%Y")" +fi + +# Echo the log line. +echo "["$(date)"] - Backup directory $DIRTOBACKUP in $BACKUPDIRDEST/"$(date +"%m-%d-%Y")"/" +# Execute the backup command. This backup consist in a recursive copy of the source dir into destination dir +cp -R $DIRTOBACKUP $BACKUPDIRDEST/"$(date +"%m-%d-%Y")"/ + +TOTMB=$(du $BACKUPDIRDEST/"$(date +"%m-%d-%Y")"/ -hs) +echo "["$(date)"] - Finished Backup - $TOTMB Copied" + +# Search for folders older than NUMDAYS days and remove them. This makes possible rotation of backups +for i in `find $BACKUPDIRDEST/ -maxdepth 1 -type d -mtime +$NUMDAYS -print`; +do + echo -e "["$(date)"] - Found outdated backup folder! Deleting directory $i"; + \rm -rf $i; +done