#!/bin/bash
#                       /usr/local/bin/rsnapshotlimit.pixy
#  http://crystalfaeries.net/posix/bin/rsnapshotlimit.pixy
# celeste crystalfaery 2016-11-10 20:19:51+00:00
# $0 deletes old rsnapshots to alleviate disk partition full

touch /tmp/rsnapshotlimit$$ # one shot e-mail flag
let percent=`head -n 1 $HOME/.rsnapshotlimit | cut -f 1` # check soon after startup
let sleep=100-$percent

# loop forever as a daemon; checking more frequently as disk fills
while sleep "$sleep"m;do

file_system=/dev/mapper/pixy--vg-var
let percent=$( df -P -T | grep -v tmpfs | grep -v Capacity | grep $file_system | sed 's/\%.*$// ; s/^.* //' ) || exit 2
let sleep=100-$percent
if [[ $percent -gt $(head -n 1 $HOME/.rsnapshotlimit | cut -f 1) ]]
then
	/usr/local/bin/thumbnail_expire	"$sleep" &		# release the daleks
	cd `grep snapshot_root /etc/rsnapshot.conf|head -n 1|cut -f 2`				|| exit 2
	oldest=`ls -rt | head -n 1`								|| exit 3
	if [ "X$oldest" = "X" ]
	then
		if [ -f /tmp/rsnapshotlimit$$ ]
		then
			rm /tmp/rsnapshotlimit$$
			echo "Process $$ Disk Usage $percent \nFix and restart me."	| mail -s "$(basename `echo $0`) du"		root &
			#aptitude clean&			# release the hounds
			apt-get clean&				# release the hounds
		else
			#aptitude clean&			# release the hounds
			apt-get clean&				# release the hounds
		fi
	else
		rm	-rf	"$oldest" &		# Delete the oldest backup and
		/usr/local/bin/rsnapshot-postexec -du	# race to log the overflow then mail the log
		cat /var/log/`hostname`.rsnapshot.du.txt | mail -s "$(basename `echo $0`) $oldest" root
	fi
fi
if [[ $sleep -lt 1 ]]
then
	let sleep=1	# minimum sleep time
fi

done
exit 4
