nginx日志清理的自动任务

一、创建日志切分脚本文件

vi /data/aikube/scripts/cut_nginx_log.sh

内容为:

        #/bin/bash

        # 取前一天:要求计划任务应该在0点之后执行

        yesterday=`date -d '-1 day' +%Y-%m-%d`

        # 分割后的日志保存路径(结尾不加斜杠)

        log_bak_path='/data/aikube/nginx-logs'

        # nginx日志文件路径(结尾不加斜杠)

        ng_log_path='/usr/local/openresty/nginx/logs'

        # 判断分割日志保存目录是否存在不存在则创建

        if [ ! -d ${log_bak_path} ]

        then

          mkdir -p ${log_bak_path}

        fi

        # 将日志移动到备份路径

        mv ${ng_log_path}/access.log  ${log_bak_path}/access_${yesterday}.log

        mv ${ng_log_path}/error.log   ${log_bak_path}/error_${yesterday}.log

         

        # 删除7天前的备份文件

        delday=`date -d '-8 day' +%Y-%m-%d`

        rm -rf ${log_bak_path}/*${delday}.log

         

        # 通知nginx重新生成新的日志

        kill -USR1 `cat ${ng_log_path}/nginx.pid`

 

二、给与脚本执行权限

chmod 777 /data/aikube/scripts/cut_nginx_log.sh

 

三、创建定时任务

crontab -e

增加行输入下述内容:

1 0 * * * /data/aikube/scripts/cut_nginx_log.sh

你可能感兴趣的:(Shell脚本)