centos7-nginx 日志定时备份清理 不重启nginx
对nginx重启“reload”,“USER1”有点后怕,打算找个新的实用处理脚本用,在CSDN找到的。
centos7-nginx 日志清理
nginx日志文件需要手动分割;
创建脚本文件clear_log.sh (想放在那个位置自己可以定义文件路径/usr/local/nginx/sbin)
cd /usr/local/nginx/sbin
vi clear_log.sh
输入如下内容
#!/bin/bash
# 先复制原来的错误日志文件,请根据自己实际的日志路径填写
cp /usr/local/nginx/logs/error.log /usr/local/nginx/logs/error-$(date -d "yesterday" +"%Y-%m-%d").log
# 清空错误日志文件
cat /dev/null > /usr/local/nginx/logs/error.log
# 先复制原来的访问日志
cp /usr/local/nginx/logs/access.log /usr/local/nginx/logs/access-$(date -d "yesterday" +"%Y-%m-%d").log
# 清空原来的正常访问日志
cat /dev/null > /usr/local/nginx/logs/access.log
# 定期删除七天前的日志文件
find /usr/local/nginx/logs -mtime 7 -type f -name \*.log | xargs rm -f
/usr/local/nginx/logs/是你当前nginx日志存放目录,日志存放目录不同的可适当修改路径,如果你是分域名写入的日记access.log文件名也要记得修改成你对应域名日志文件名
添加可执行权限
sudo chmod +x clear_log.sh
添加Linux计划任务
crontab -e
输入如下内容
#每天0点执行日志清理脚本请输入代码
0 0 * * * /usr/local/nginx/sbin/clear_log.sh
保存后退出,输入命令 crontab -l 查看调度计划;
至此完成nginx日志按天拆分与定期清除。
原文 CSDN