Linux删除某目录一周之内的过期文件
如题,我的防火墙每天都在自动生成日志文本,日志以每天的日期生成一个文件夹,文件夹内每条防火墙日志单独生成一个文档。如此,日积月累,会导致服务器inode索引节点过多。
那么我需要自动清理七天前的日志文件夹及其日志文件
我自己写的周期任务脚本都存放在opt/shell目录下,我在opt/shell目录下新建了一个modsec.sh
oldDate=$(date -d “-7 days” “+%Y%m%d”)
cd /usr/local/apache/logs/audit/apache #这里写你的文件夹路径
for folder in $(ls -d */)
do
[ ${folder%/*} -lt $oldDate ] && rm -rf $folder
done运行该脚本会自动清理/usr/local/apache/logs/audit/apache目录下7天前的文件内容及其目录。
运行方式为:
sh /opt/shell/modsec.sh
2021年03月14日 11:35我们可以通过crontab -e新增一个周期任务:
0 1 * * * sh /opt/shell/modsec.sh
如此,每天凌晨一点自动运行脚本,清理七天内的日志文件
2021年03月14日 11:35需要注意的是,modsec.sh文件需要设置为utf-编码,换行编码要设置为Unix
2021年03月14日 11:40本文所描述的日志文件目录架构如下:
2021年03月14日 11:41挺实用的功能 +1
2021年03月14日 11:45
嗯,有些防火墙会生成日志,需要定时清理下