帮忙写个SHELL脚本,用于判断删除文件的。 30
假设目录为XXX/XXX/XXXX-XX-XX.tar.bz2(XXXX-XX-XX表示年-月-日)。每天都有备份。脚本每周一运行一次,目录下上周的文件保留,自动删除上上...
假设目录为XXX/XXX/XXXX-XX-XX.tar.bz2 (XXXX-XX-XX表示年-月-日)。每天都有备份。
脚本每周一运行一次,目录下上周的文件保留,自动删除上上周的从周二到周日的文件,只保留周一的文件。
每个月最后一天只保留当月第一个周一的文件,其余全删;
每年最后一天只保留当年第一个周一的文件,其余全删。
求高手帮下忙。谢谢。 展开
脚本每周一运行一次,目录下上周的文件保留,自动删除上上周的从周二到周日的文件,只保留周一的文件。
每个月最后一天只保留当月第一个周一的文件,其余全删;
每年最后一天只保留当年第一个周一的文件,其余全删。
求高手帮下忙。谢谢。 展开
展开全部
你是定期生成的,可以用find 命令查找,做定时任务,找到删除
一周的:
find /xxx/xxx -mtime +1 -mtime -6 -delete
月的差不多,就是日期不一样:
$(($(date -d "-1 day" +%e )-7)) 是计算出昨天的日期-1 在上个月的天数,然后-7是不删除前7天的数据
find /xxx/xxx -mtime +1 -mtime -$(($(date -d "-1 day" +%e )-7)) -delete
年的:
find /xxx/xxx -mtime +1 -mtime -$(($(date -d "-1 day" +%j )-7)) -delete
具体没有测试,我这儿没这样的文件,你试好了,先查找出来,对比一下,再调整删除。不保证能用
mark一下
一周的:
find /xxx/xxx -mtime +1 -mtime -6 -delete
月的差不多,就是日期不一样:
$(($(date -d "-1 day" +%e )-7)) 是计算出昨天的日期-1 在上个月的天数,然后-7是不删除前7天的数据
find /xxx/xxx -mtime +1 -mtime -$(($(date -d "-1 day" +%e )-7)) -delete
年的:
find /xxx/xxx -mtime +1 -mtime -$(($(date -d "-1 day" +%j )-7)) -delete
具体没有测试,我这儿没这样的文件,你试好了,先查找出来,对比一下,再调整删除。不保证能用
mark一下
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询