本文主要内容
1. Nginx日志切割脚本编写
2. 使用crontabs定时器插件,定时切割日志
nginx的日志默认都会存在access.log文件中,但是随着时间的推移,这个文件的内容会越来越多,体积会越来越大不便于运维人员的查看,所有我们可以通过把这个大的日志文件切割成多份不同的小文件作为日志,切割规则可以以天为单位,也可以按照实际需求特殊设置,比如:如果每天有几白G或者几个T的日志的花,可以按照每半天或者每小时对日志进行切割
1. Nginx日志切割脚本编写
1. 创建一个shell 可执行文件:cut_access_log.sh(名字可自定义),内容如下:?
- LOG_PATH="/usr/local/nginx/logs/" 指定nginx日志目录 (按自己的nginx目录进行响应修改)
- RECORD_TIME=$(date -d "yesterday" +%Y-%m-%d) 指定日志切割,此处指定按天切割
如果要按照分钟可以设置成
- RECORD_TIME=$(date -d "yesterday" +%Y-%m-%d+%H:%M)
- kill -USR1 `cat $PID`? 向Nginx主进程发送信号,用于重新打开日志文件
#!/bin/bash LOG_PATH="/usr/local/nginx/logs/" RECORD_TIME=$(date -d "yesterday" +%Y-%m-%d) PID=/usr/local/nginx/logs/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`
2. 为cut_access_log.sh添加可执行权限
chmod +x xxx.sh?
?3. 执行cut_access_log.sh脚本信息
./cut_access_log.sh
?2. 使用crontabs定时器插件,定时切割日志
?1. 安装定时任务
yum install crontabs
2.? 向crontabs中编辑并且添加一行新的任务
crontab -e 打开文件
59 23 * * * /usr/local/nginx/sbin/cut_access_log.sh 指定执行频率(每天23:59分执行一次),及要执行的脚本文件路径
crontab -e?
59 23 * * * /usr/local/nginx/cut_access_log/xxx.sh
?3. 重启定时任务
service crond restart
附:常用的定时任务?
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
crontab -e // 编辑任务
crontab -l // 查看任务列表
|