【Linux Shell脚本编程】保留最近N天或N次备份文件

Tanglu Shell 2018-02-26 8476 1

在生产环境中,经常会有这样一种需求“保留N天内的备份数据常规做法可能会把下面的命令放进脚本中并让计划任务按期执行:

find /bak -mtime +7 -exec rm -rf {} \;

但是有这么一种情况,公司需要保留最新的3份备份文件,那么如何实现?这里可以使用ls -t命令进行排序,最新的文件会排在最前面,然后把3行以后的文件都给删除。最好给脚本文件一个chattr -i的权限,让脚本不能被修改,防止删除文件的目录被修改导致不可挽回的错误

#保留2份指定目录下文件名包含xtreasm的文件
ls -t /data/mysql_backup/public/ | awk '$0~/xbstream/' | awk 'NR>2' | xargs rm -rf

评论

精彩评论
2019-12-17 17:12:56

谢谢,找了好久,终于找到能用的!
谢谢