nginx日志切割及7天前的历史日志删除脚本

按日期切割nginx日志,并自动删除7天前的日志。


#!/bin/bash
#初始化
LOGS_PATH=/data/nginx/logs
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
weinxin
聂扬帆博客
一个分享IT运维相关工作经验和实战技巧的个人博客

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:2   其中:访客  2   博主  0

  1. avatar yun 0

    学习学习,研究研究,呵呵

  2. avatar af 0

    刚好需要用到这个脚本。收藏·