1.首先,我们先需要在本地编写一个sheel脚本,我这边本地是win10的系统。nginx是部署在linux系统中(sheel脚本需要放在linux系统中),以.sh结尾
2.需要执行的脚本代码为,注意里面的nginx中的log路径,需要替换成你自己的log路径。
#/bin/bash
#备份日志的路径
bakpath='/opt/openresty/nginx/backlogs'
#nginx日志路径
logpath='/opt/openresty/nginx/logs'
#在备份路径下创建年月子目录--按照月备份文件夹
mkdir -p $bakpath/$(date +%Y)/$(date +%m)
#移动日志文件到备份路径,并改名为日期格式
mv $logpath/access.log $bakpath/$(date +%Y)/$(date +%m)/access.$(date +%Y%m%d).log
mv $logpath/error.log $bakpath/$(date +%Y)/$(date +%m)/error.$(date +%Y%m%d).log
#用 USR1 信号让nginx重新打开日志文件
kill -USR1 `cat /opt/openresty/nginx/logs/nginx.pid`
3.我们将脚本文件写好以后,放至linux系统中的文件夹内。这个可自己定义。
然后我们需要在linux系统中创建定时任务,具体步骤是
先输入crontab -e,开始编辑定时任务 输入 i 回车,开始编辑
然后在输入定时任务执行的时间点,我这边举例说明
*/1 * * * * /bin/sh /opt/openresty/nginx/cut_nginx_logs.sh