linux下 Nginx日志分割 废话不多说,直接上代码。
#!/bin/bash
## 间隔1天执行该脚本
## Nginx 日志文件所在的目录
LOGS_PATH=/usr/local/nginx/logs
## Nginx 日志文件生成后的目录
NEWLOGS_PATH=/home/wwwlogs
## 获取昨天的 yyyy-MM-dd
YESTERDAY=$(date -d "yesterday" +%Y%m%d)
## 移动文件
mv ${LOGS_PATH}/access.log ${NEWLOGS_PATH}/access_${YESTERDAY}.log
## 向 Nginx 主进程发送 USR1 信号。USR1 信号是重新打开日志文件
kill -USR1 $(cat /usr/local/nginx/nginx.pid)
将上面代码保存为cut_nginx_logs.sh,如果通过SSH的ftp上传,记得设置编码。 :set ff=unix
定时自动启动任务crontab
设定cut_nginx_logs.sh启动时间。
执行命令crontab -e进入编辑状态
添加如下代码,每天0点01分启动。
01 00 * * * /bin/sh /usr/local/nginx/sbin/cut_nginx_logs.sh
:wq 退出
crontab -l 查看运行情况
service crond restart crontab重启