Need script entry to delete old backups


Recommended Posts

I've got a nice and simple rsync script that runs a daily backup between 2 remote unraid servers. Can't take any credit for it, I just modified the "vm settings backup" script to suit the purpose of backing up some quickbooks company files. What i'm missing is an entry in the script to delete backups older than X number of days. The script runs daily, with each new backup in a date-stamped folder like this "/path/Backups/_23_Jul_2020". Ideally, i'd like the script to delete folders older than 14 days from "/path/Backups/" if possible. I'm open to changing any aspect of my present script to achieve desired results. I've included my modified version of the script below for reference. Thanks!

 

#!/bin/bash
#backs up
#change the location below to your backup location 
backuplocation="/mnt/disks/192.168.1.121_Backups/Office/Quickbooks/Manual"

# do not alter below this line
datestamp="_"`date '+%d_%b_%Y'`
dir="$backuplocation"/Backups/"$datestamp"
# dont change anything below here
if [ ! -d $dir ] ; then
 
			echo "making folder for todays date $datestamp"

			# make the directory as it doesnt exist
			mkdir -vp $dir
		else
			echo "As $dir exists continuing."
			fi

echo "Saving QB Backup Files"
rsync -aP --no-o /mnt/disks/CLEMENTSS-IMAC_Quickbooks_2019/Backups/ $dir/Backups/
echo "Saving QB Company Files"
rsync -aP --no-o '/mnt/disks/CLEMENTSS-IMAC_Quickbooks_2019/Company Files/' $dir'/Company Files/'
chmod -R 777 $dir
sleep 5
exit

 

Edited by Cpt. Chaz
Link to comment

May have solved my own problem, but would love for somebody to double check me. I added "find $dir* -mtime +14 -exec rm -rfv {} \" to the top of the script (to minimize time needed to scan newly added files)

 

#!/bin/bash
#backs up
#change the location below to your backup location 
backuplocation="/mnt/disks/192.168.1.121_Backups/Office/Quickbooks/Manual"

# do not alter below this line
datestamp="_"`date '+%d_%b_%Y'`
dir="$backuplocation"/Backups/"$datestamp"
# dont change anything below here
if [ ! -d $dir ] ; then
 
			echo "making folder for todays date $datestamp"

			# make the directory as it doesnt exist
			mkdir -vp $dir
		else
			echo "As $dir exists continuing."
			fi
echo "Deleting Old Backups"
find $dir* -mtime +14 -exec rm -rfv {} \;
echo "Saving QB Backup Files"
rsync -aP --no-o /mnt/disks/CLEMENTSS-IMAC_Quickbooks_2019/Backups/ $dir/Backups/
echo "Saving QB Company Files"
rsync -aP --no-o '/mnt/disks/CLEMENTSS-IMAC_Quickbooks_2019/Company Files/' $dir'/Company Files/'
chmod -R 777 $dir
sleep 5
exit

 

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.