#! /bin/bash # Readme and manual on # http://www.dei.unipd.it/~sbologna/pages/linuxbackup.html [ENGLISH] # http://www.dei.unipd.it/~sbologna/ita/pages/linuxbackup.html [ITALIAN] # # Run a backup script every sunday or if a Sunday has passed without backup. # Every month it also run the monthly backup. a_week=7 a_month=31 timestamp_file_weekly=/home/saverio/.backup_timestamp_weekly log_file=/home/saverio/.backup.log date_now=`date "+%Y%m%d"` day_of_week=`date "+%u"` time_now=`date "+%s"` date >> $log_file if [ -e $timestamp_file_weekly ]; then date_of_backup=`stat --format=%y $timestamp_file_weekly | tr -d - | awk '{print $1}'` time_of_backup=`stat --format=%Y $timestamp_file_weekly` echo last weekly backup $date_of_backup >> $log_file if (( $day_of_week % 7 >= $time_now / 86400 - $time_of_backup / 86400 )); then echo "no Sunday is passed without doing a backup, doing nothing" >> $log_file exit 0; fi echo "a Sunday is passed without doing a backup!" >> $log_file if (( $date_now - $date_of_backup >= $a_month )); then echo "a new month started: time to do a monthly backup" >> $log_file /usr/bin/rsnapshot monthly && echo "monthly backup: DONE!" >> $log_file fi fi echo "let's do a weekly backup" >> $log_file date > /home/saverio/.today /usr/bin/rsnapshot weekly && touch $timestamp_file_weekly && echo "weekly backup: DONE!" >> $log_file