nginx 日志切割

由于nginx日志在运行之后会一直变大,然后会占用空间,甚至会影响系统,故准备将日志定期切割,然后删除定期的日志,查了网上的办法,将两篇比较好的文章综合一下,算是有效的解决了问题。

解决思路: 利用shell命令写一个定时脚本,每天定时执行。这里面牵涉两点,1是shell命令,2 是定时执行

1 shell命令如下

#!/bin/bash
#Rotate the Nginx logs to prevent a single logfile from consuming too much disk space. 
LOGS_PATH=/usr/local/nginx/logs
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log
mv ${LOGS_PATH}/error.log ${LOGS_PATH}/error_${YESTERDAY}.log
## 将nginxlogs下面的15天之前的日志文件删除
find /usr/local/nginx/logs/ -mtime +15 -type f -name *.log | xargs rm -f
## 向 Nginx 主进程发送 USR1 信号。USR1 信号是重新打开日志文件
kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)

 将文件名定为nginxLogRotate.sh,保存到目录/usr/local/nginx/logs

chmod  +x nginxLogRote.sh 这个不要忘了赋予执行权限

2 设置定时任务

vi /etc/crontab

0 0 * * * root /usr/local/nginx/nginxLogRotate.sh

 注意:nginxLogRotate.sh 这个文件不要放到/usr/local/nginx/logs这个目录下

find 那一行的命令会不生效

参考
https://blog.csdn.net/wangkai_123456/article/details/71056758

https://blog.csdn.net/winsonyuan/article/details/40379087

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值