From c5d3f3ca23bf4199db7432855c1e960051a445c7 Mon Sep 17 00:00:00 2001 From: Alexander Sulfrian Date: Tue, 27 Apr 2010 02:31:46 +0200 Subject: added script to cleanup old backups but keep some --- mysql/clean_backups.sh | 125 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100755 mysql/clean_backups.sh (limited to 'mysql/clean_backups.sh') diff --git a/mysql/clean_backups.sh b/mysql/clean_backups.sh new file mode 100755 index 0000000..a0e60af --- /dev/null +++ b/mysql/clean_backups.sh @@ -0,0 +1,125 @@ +#!/bin/bash + +source $(dirname $0)/ftp.settings + +last_day=0 +last_month=0 +last_year=0 + +two_years_ago_y=$(date -d '-2years' +%Y) +two_years_ago_m=$(date -d '-2years' +%m) + +six_months_ago_y=$(date -d '-6month' +%Y) +six_months_ago_m=$(date -d '-6month' +%m) + +one_month_ago_y=$(date -d '-1month' +%Y) +one_month_ago_m=$(date -d '-1month' +%m) +one_month_ago_d=$(date -d '-1month' +%d) + +ncftpls -u"${FTP_USER}" -p"${FTP_PASSWORD}" "ftp://${FTP_SERVER}/${FTP_TARGET}/" | \ + sed -nr 's/(^.*)([0-9]{4})-([0-9]{2})-([0-9]{2}).*/\2\t\3\t\4 \1/gp' | \ + sort -n | uniq | awk -F'\t' '{ print $1" "$2" "$3}' | while read y m d name +do + + # older than 2 years, only keep 1 per month + + if [ $y -lt $two_years_ago_y -o \ + \( $y -eq $two_years_ago_y -a $m -lt $two_years_ago_m \) ]; then + if [ $last_month -eq $m ]; then + + ncftp -u"${FTP_USER}" \ + -p"${FTP_PASSWORD}" \ + "ftp://${FTP_SERVER}/${FTP_TARGET}/" >/dev/null </dev/null </dev/null <