前几天看nginx日志,发现日志文件发现愈来愈大。下载分析很是不方便,因此打算按天对其进行切割,使用shell脚本方式进行切割。nginx
当前使用Nginx安装到了/usr/local/nginxshell
在/usr/local/nginx/logs上建立一个shell文件,命名为:nginxLogRotate.sh。bash
执行如下命令:spa
cd /usr/local/nginx/logs vi nginxLogRotate.sh
nginxLogRotate.sh文件内容:调试
## 日志存放路径 LOGS_PATH=/usr/local/nginx/logs ## 获取当天日期,用于日志文件名上 YESTERDAY=$(date -d "yesterday" +%Y-%m-%d) ## 移动access.log日志,并修改命名 mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log ## 移动error.log日志,并修改命名 mv ${LOGS_PATH}/error.log ${LOGS_PATH}/error_${YESTERDAY}.log ## 向 Nginx 主进程发送 USR1 信号。USR1 信号是从新打开日志文件 kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)
注意,建立完成文件以后须要配置一下文件权限,执行如下命令就能够日志
chmod 777 nginxLogRotate.sh
执行如下命令配置自动调度code
crontab -e
在自动调度中配置如下信息blog
#天天16点50分执行 /usr/local/nginx/logs/nginxLogRotate.sh脚本 50 16 * * * bash /usr/local/nginx/logs/nginxLogRotate.sh
经过以上配置就完成了Nginx日志自动切割,天天下载16点50分自动切割,也能够根据本身的须要本身配置时间,天天会产生一个当天日志的日志。进程