删除指定日期的MYSQL备份文件

 

数据库的备份脚本。
 
http://blog.chinaunix.net/u/29134/showart_464801.html


这个脚本来配合原来的备份脚本做善后工作,只保留最新三天内的备份。

文件名称示例:

[root@mysql131-3 backup]# ls -sihl
total 1.2G
11075627 4.0M -rw-r--r-- 1 root root 4.0M Jan 27 01:00 backup_bbs20080127_010001.sql.gz
14843905 4.0M -rw-r--r-- 1 root root 4.0M Jan 28 01:00 backup_bbs20080128_010001.sql.gz
11075601 4.0M -rw-r--r-- 1 root root 4.0M Jan 29 01:00 backup_bbs20080129_010001.sql.gz
11075629  44K -rw-r--r-- 1 root root  39K Jan 27 01:00 backup_cms20080127_010001.sql.gz
14843908  44K -rw-r--r-- 1 root root  39K Jan 28 01:00 backup_cms20080128_010001.sql.gz
11075608  44K -rw-r--r-- 1 root root  39K Jan 29 01:00 backup_cms20080129_010001.sql.gz
11075628 403M -rw-r--r-- 1 root root 403M Jan 27 01:00 backup_site20080127_010001.sql.gz
14843906 403M -rw-r--r-- 1 root root 403M Jan 28 01:00 backup_site20080128_010001.sql.gz
11075602 403M -rw-r--r-- 1 root root 403M Jan 29 01:00 backup_site20080129_010001.sql.gz


脚本内容:

#!/bin/sh

#

# Created by david yeung 20080129.

#

# Delete overdue mysql backup file.

#

# Directory to list.

DIRNAME=/home/david_yeung/backup/
# Get the date part.

ARR1=`ls $DIRNAME | cut -d '_' -f3`
# Get three day ago.

CUR_DATE=`date +'%Y%m%d' -d '-3 day'`
# Delete the overdue file.

for CUR_FILENAME in $ARR1
do
  RESULT=`echo $CUR_FILENAME | tr -d "[a-z]"`
  if [ "$RESULT" -le "$CUR_DATE" ]
  then
    rm -rf `echo "${DIRNAME}backup_${CUR_FILENAME}_010001.sql.gz"`
  fi
done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值