总体思路分两步:1、通过脚本文件分割日志;2、定时执行分割日志的脚本文件。
第一步:准备分割日志脚本,如下:
- 创建一个名为cut_my_log.sh的shell可执行文件,内容如下:
#!/bin/bash LOG_PATH="/var/log/nginx/" #你存放日志的位置 RECORD_TIME=$(date -d "yesterday" +%Y-%m-%d) #日志分割的时间,按天 PID=/var/run/nginx/nginx.pid mv ${LOG_PATH}/access.log ${LOG_PATH}/access.${RECORD_TIME}.log mv ${LOG_PATH}/error.log ${LOG_PATH}/error.${RECORD_TIME}.log #向Nginx主进程发送信号,用于重新打开日志文件 kill -USR1 `cat $PID`
- 为cut_my_log.sh添加可执行权限:
chmod +x cut_my_log.sh
- 测试日志切割后的结果
./cut_my_log.sh
第二步:定时执行脚本
-
安装定时任务
yum install crontabs
- crontab -e编辑并且添加一行新的任务(每日凌晨1点执行)
0 1 * * * /usr/local/nginx/sbin/cut_my_log.sh
- 重启定时任务
service crond restart
附录:常用的定时任务命令
service crond start // 启动服务
service crond stop // 关闭服务
service crond restart // 重启服务
service crond reload // 重新载入配置
crontab -e // 编辑任务
crontab -l // 查看任务列表