nginx的error日志按天分割

先贴一下脚本,这是别人写的,忘记出处了

#!/bin/bash
#Rotate the Nginx logs to prevent a single logfile from consuming too much disk space.
LOGS_PATH=/usr/local/nginx/logs
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log
mv ${LOGS_PATH}/error.log ${LOGS_PATH}/error_${YESTERDAY}.log
## 向 Nginx 主进程发送 USR1 信号。USR1 信号是重新打开日志文件
kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)

将红色部分修改为自己的路径

然后再/etc/crontab下添加定时任务:

0 0 * * * root /cicro/opt/nginx/logs/errorSH.sh

每天凌晨执行,root账户去执行路径下的shell脚本,将红色部分路径替换成自己的路径和自己的脚本名称。

脚本会将日志文件修改为昨天的时间,例如:error_2020-06-18.log,然后新建一个error.log文件

此时需要注意的是,nginx的启动用户要有创建文件的权限,否则会创建文件失败

注:如果你是在windows下写的脚本,上传到linux执行,会因为编码格式的问题存在兼容问题

   //在放入linux中之后,需要编辑一下 修改文件编码格式
   //:set ff 回车 查看编码
   //:set ff = unix 修改为linux的文件编码格式

自己在使用过程遇到的问题,特此记录一下,希望遇到的朋友可以少走点弯路!!!!

原文地址:https://www.cnblogs.com/supple/p/13188375.html