日志切割是脚本是这么写的:
#!/bin/bash
## 零点执行该脚本
## Nginx 日志文件所在的目录
LOGS_PATH=/home/aaa/logs
pid_path="/var/run/nginx.pid"
## 获取昨天的 yyyy-MM-dd
#YESTERDAY=$(date -d ”yesterday” +%Y-%m-%d)
YESTERDAY=$(date -d last-day +%Y%m%d)
## 移动文件
mv ${LOGS_PATH}/aaa.access.log ${LOGS_PATH}/aaa.access.log_${YESTERDAY}.log
## 向 Nginx 主进程发送 USR1 信号。USR1 信号是重新打开日志文件
kill -USR1 `cat ${pid_path}`
这个脚本单独执行是可以的,但是放到crontab -e却没有自动按时执行,crontab -e内容如下:
0 0 * * * /bin/bash /etc/nginx/mylogs/cut-log.sh
我都是用Linux的 logrotate 来处理的