前言:前篇介绍了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

 

总结:删除本身就是危险操作,如果在脚本中做删除操作,通过变量传递参数,那就更危险了,一定要进行二次确认,防止获取变量为空造成的误删。

posted on 2017-04-07 14:07  浮沉一梦  阅读(1356)  评论(0编辑  收藏  举报