SEARCH

nginx服务器节省空间之日志切割删除脚本

2018年04月25日

服务器日志为什么不直接删除呢,其实是因为这些日志涉及到支付等重要业务,保存半年以上也算是保守的做法。


利用 CRT 的全局命令把磁盘空间占用率超过 75%的服务器筛选出来,继续进行清理磁盘空间。但是nginx方向代理服务器的日志居然还没做分割处理,access.log甚至已经达到150GB。


nginx服务器节省空间之日志切割删除脚本


于是就用到了下面这个access.log日志切割脚本,按日期切割 nginx日志,并自动删除 7 天前的日志,日志均已同步至专用日志存储服务器,可放心删除历史日志。


#!/bin/bash
#初始化
LOGS_PATH=/data/nginx/logs/api.rongkeji.cn
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
#按天切割日志
mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log
#向 Nginx 主进程发送 USR1 信号,重新打开日志文件,否则会继续往mv后的文件写内容,导致切割失败.
kill -USR1 `ps axu | grep "nginx: master process" | grep -v grep | awk '{print $2}'`
#删除7天前的日志
cd ${LOGS_PATH}
find . -mtime +7 -name "*20[1-9][3-9]*" | xargs rm -f
exit 0


将这个脚本添加到计划任务,每天执行一次即可:


1 0 * * * /usr/local/script/cut_del_logs.sh


Contact

大同市城区西环路168号

致力于做服务最好的网站建设公司

将 " 策划+创意+体验+技术 " 完美融合 !

Wechat