前言:前篇介绍了mysql的备份方法,但备份不是越多越好,如果磁盘空间不够用,我需要保留近一个周的备份就可以了,那就需要删除备份脚本了,特别注意删除操作比较危险,变量传参要进行二次确认。
下面给出删除备份参考脚本:
#!/bin/bash #delte mysql back of 7 days ago #Author:jzd #Version:1.0 #mysql back directory back_dir="/back" #expire days expire_day=7 if [ x"${back_dir}" != "x" -a ${expire_day} ]; then cd ${back_dir} && find ${back_dir} -maxdepth 1 -type d -ctime +${expire_day} -name "20*-*-*_*" -exec rm -rf {} ; fi exit $?
拓展:我这边每天有采集数据的脚本在运行,日志分别在不同的目录,但日志文件都是以日期命名的,时间长久会生成大量日志文件,我需要把它清除,下面是参考脚本:
#!/bin/bash #删除日志脚本,以文件修改日期为依据,删除大于过期天数的文件 #2017-02-13 Auth:jzd Ver:1.0 #程序目录 pwd="/home/aixtest/del_log" #要删除的文件所在目录,每行一个目录 file_dir="$pwd/del_file_dir" #文件过期天数 expire="15" if [ ! -d ${pwd} ]; then mkdir -p ${pwd} fi if [ ! -s ${file_dir} ]; then echo "请检查是否在${file_dir}文件配置文件所在目录." exit 1 fi cd $pwd while read dir do if [ ! -d ${dir} ]; then "请检查是否纯在${dir}目录." exit 1 fi cd ${dir} && find . -type f -mtime +15 -name "20*-*-*_*" -exec rm -rf {} ; done < ${file_dir} exit $?
存放目录的文件del_file_dir,后面有类似的情况,往文件中添加目录绝对路径就OK了:
/home/dir1 /home/dir2 /home/dir3 /home/dir4
总结:删除本身就是危险操作,如果在脚本中做删除操作,通过变量传递参数,那就更危险了,一定要进行二次确认,防止获取变量为空造成的误删。