3 人签到
    搜索
    Hi~登录注册
    查看: 389|回复: 0
    收起左侧

    自动清理NGINX日志脚本

    [复制链接]

    457

    主题

    4

    精华

    592 小时

    在线时间

    管理员

    积分
    407
    发表于 2019-1-17 00:35:04 | 显示全部楼层 |阅读模式
    再次印证了免费的就是最贵的这句话

    网上脚本或多或少都有错 改完后能运行了

    直接上脚本


    [AppleScript] 纯文本查看 复制代码
    #!/bin/bash
    #nginx access log segmentation shell script
    
    #日志目录
    log_dir="/home/wwwlogs/"
    cd $log_dir
    time=`date +%Y%m%d --date="-1 day"`
    
    #日志保存天数
    save_days=5
    
    #日志文件名所处'/'分割的位置
    #可执行 
    #ls 日志目录/*.log | xargs -n 1 | cut -f 1 -d "." | cut -f 数字 -d "/"
    #进行查看 直到能正确显示日志文件名为止
    num=4;
    
    #此处待优化(取得文件不带后缀的文件名)
    website=`ls $log_dir*.log | xargs -n 1 | cut -f 1 -d "." | cut -f $num -d "/"`
    
    #日志目录下所有的日志文件为文件夹,循环新建对应的时间文件
    for i in $website 
    do
    
    #判断目录是否存在
    if [ ! -d $log_dir$i ];
    then
            mkdir "$i"
    fi
    
    #移动原日志到新文件夹
    mv $log_dir$i.log $log_dir$i/$i-$time.log
    true>$log_dir$i.log
    done
    
    #删除设置天数前的数据
    find $log_dir -mtime +$save_days -exec rm -rf {} \;
    
    #平滑启动nginx
    service nginx reload




    赋予执行权限chmod +x cut_nginx_log.sh


    然后在crontab里面加个任务
    0 0 * * * /bin/bash /path/to/your/cut_nginx_log.sh


    每天0点0分执行切割日志





    上一篇:EasyCMS 跨站脚本漏洞
    下一篇:别再用带后门的抢票软件了 用源码自己改一个吧
    回复

    使用道具 举报

    游客
    回复
    您需要登录后才可以回帖 登录 | 获取账号

    快速回复 返回顶部 返回列表