1、在nginx目录下新建一个脚本文件cut_nginx_logs.sh,具体nginx路径根据实际情况更改,脚本内容如下
#!/bin/bash
#LOGS_PATH为日志存放路径
LOGS_PATH=/home/admin/mid/nginx/logs/
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
KEEPTIME=$(date -d "-30 days" +%Y-%m-%d)
#切分日志文件
mv ${LOGS_PATH}access.log ${LOGS_PATH}access_${YESTERDAY}.log
mv ${LOGS_PATH}error.log ${LOGS_PATH}error_${YESTERDAY}.log
#通过Nginx信号量控制重读日志,/home/admin/mid/nginx-1.16.1/为nginx安装目录
kill -USR1 $(cat /home/admin/mid/nginx/logs/nginx.pid)
#删除30天前的日志文件
rm -f ${LOGS_PATH}access_${KEEPTIME}.log
rm -f ${LOGS_PATH}error_${KEEPTIME}.log
echo 0
2、设置每天00:01分自动执行脚本
crontab -e
01 00 * * * ./etc/profile; /bin/sh /home/admin/mid/nginx/cut_nginx_logs.sh
查看crond服务是否在运行
ps -ef | grep crond
如果查看到没有进程运行,则需将其服务重新启动或重新加载
crond reload