先贴一下脚本,这是别人写的,忘记出处了
#!/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的文件编码格式
自己在使用过程遇到的问题,特此记录一下,希望遇到的朋友可以少走点弯路!!!!