Nginx日志切割

Nginx日志按日期自动切割、压缩以及定期删除脚本

一、脚本内容

#!/bin/bash

# 设置日志文件存放目录
logs_path="/var/log/nginx/"
backup_path="/var/log/nginx/logs/"
# 设置pid文件
pid_path="/var/run/nginx.pid"

# 重命名日志文件
mv ${logs_path}.access.log ${backup_path}.access_$(date -d "yesterday" +"%Y%m%d").log
mv ${logs_path}.error.log ${backup_path}.error_$(date -d "yesterday" +"%Y%m%d").log

# 向nginx主进程发信号重新打开日志
kill -USR1 `cat ${pid_path}`

# 压缩
gzip ${backup_path}.access_$(date -d "yesterday" +"%Y%m%d").log
gzip ${backup_path}.error_$(date -d "yesterday" +"%Y%m%d").log

# 删除超过指定时间的日志文件,单位:天
find  $backup_path -name "*.gz" -type f -mtime +30 -exec rm -rf {} ;

二、使用方式

1. 创建目录

$ mkdir -p /var/log/nginx/logs

2. 将脚本放在任意目录,修改脚本中的参数,主要就是修改相关文件位置

3. 设置定时任务

crontab -e
# 选择编辑器,添加定时任务,脚本位置见第二步
0 0 * * * /root/cut.sh

4. 查看定时任务

crontab -l
原文地址:https://www.cnblogs.com/thisismartin/p/13214611.html