Linux删除某目录一周之内的过期文件

古哥 网站咨询

如题,我的防火墙每天都在自动生成日志文本,日志以每天的日期生成一个文件夹,文件夹内每条防火墙日志单独生成一个文档。如此,日积月累,会导致服务器inode索引节点过多。

那么我需要自动清理七天前的日志文件夹及其日志文件

回复

共5条回复 我来回复
  • 古哥的头像
    古哥
    联系邮箱:admin#iymark.com
    评论

    我自己写的周期任务脚本都存放在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 0条评论
  • 古哥的头像
    古哥
    联系邮箱:admin#iymark.com
    评论

    我们可以通过crontab -e新增一个周期任务:

    0 1 * * * sh /opt/shell/modsec.sh

    如此,每天凌晨一点自动运行脚本,清理七天内的日志文件

    2021年03月14日 11:35 0条评论
  • 古哥的头像
    古哥
    联系邮箱:admin#iymark.com
    评论

    需要注意的是,modsec.sh文件需要设置为utf-编码,换行编码要设置为Unix

    2021031403401341

    2021031403402166

     

    2021年03月14日 11:40 0条评论
  • 古哥的头像
    古哥
    联系邮箱:admin#iymark.com
    评论

    本文所描述的日志文件目录架构如下:

    2021031403405773

    2021031403410324

    2021031403411062

    2021年03月14日 11:41 0条评论
  • 30 ℃的头像
    30 ℃
    这个人很懒,什么都没有留下~
    评论

    挺实用的功能 +1

    2021年03月14日 11:45 1条评论
    • 嗯,有些防火墙会生成日志,需要定时清理下

      2021年03月14日 11:48 回复
微信小程序
微信公众号