linux 删除指定日期之前的文件
es没有指定日志时默认在var的log下面
用 >edf_cluster.log 这个来清空当前日志文件内容,且仍然保留文件名,只清空内容
两种方法:
1. 在一个目录中保留最近三个月的文件,三个月前的文件自动删除。
find /email/v2_bak -mtime +92 -type f -name *.mail[12] -exec rm -rf {} \;将此命令写入crontab后即可自动完成查找并删除的工作了。
/email/v1_bak --设置查找的目录;
-mtime +92 --设置时间为91天前;
-type f --设置查找的类型为文件;
-name *.mail[12] --设置文件名称中包含mail1或者mail2;
-exec rm -f --查找完毕后执行删除操作;
2. 或者用:find . -ctime +40 -type f | xargs rm -rf
1、编写清理日志脚本clear.sh
#!/bin/sh
find /opt/bak -mtime +6 -name "*.log" -exec rm {} \;
find /opt/bak -mtime +6 -name "*.dmp" -exec rm {} \;
find /opt/bak -mtime +6 -name "*.log" -exec rm {} \;
find /opt/bak -mtime +6 -name "*.dmp" -exec rm {} \;
2、给脚本授权
chmod +x clear.sh
3、加入定时执行任务
vi /etc/crontab
在最后加入:00 2 * * * root /opt/sh/clear.sh
4、重启crontab服务
service crond restart