跳转至

12. 日志切割

2. nginx日志切割

日志切割是生产环境很常见的操作
能够控制单个日志文件的大小,便于对日志进行管理

1. 模拟生成大量日志

ab -kc 10 -n 1000 http://127.0.0.1

2. 给当前日志文件重命名

mv access.log access.log_$(date +%Y-%m-%d)

3. 发送信号给nginx,让其生成新的日志文件

nginx -s reopen     # 等同于kill -USR1 `cat nginx.pid`

4. 编写日志切割shell脚本

# 生产环境,日志切割主要以定时任务来操作
vim cut-nginx-log.sh
#!/bin/bash
# 脚本放入crontab,每天00:00执行
logs_path="/opt/tngx232/logs/"
# 创建存放日志的目录
mkdir -p $(logs_path)$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")
# 备份当前日志
mv $(logs_path)access.log $(logs_path)$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/$(date -d "yesterday" +"%Y-%m-%d").log

# 重新生成日志
nginx -s reopen

5.脚本放入定时任务执行

# 放入定时任务
crontab -e
0 0 * * * /bin/bash /myscripts/cut-nginx-log.sh

最后更新: 2022-02-20 13:32:53