nginx日志按天自动切割并删除一个月前的日志

发布时间:2020-07-05编辑:脚本学堂
分享一例shell脚本,实现nginx日志的按天切割,并删除掉一个月之前的旧日志,有需要的朋友参考下。

本节内容:
一例nginx日志切割的shell/ target=_blank class=infotextkey>shell脚本

脚本内容:
 

复制代码 代码示例:
#!/bin/bash
# 功能:自动切割nginx日志
# 编辑:www.jb200.com
cd /var/log/nginx/ 
mv  sendsadmin.access.log sendsadmin.access.$(date +%Y%m%d).log 
mv  api.sends.cc.access.log api.sends.cc.access.$(date +%Y%m%d).log 
mv  blog.sends.cc.access.log blog.sends.cc.access.$(date +%Y%m%d).log 
mv  error.log error.$(date +%Y%m%d).log 
sudo kill -USR1 `cat  /usr/local/web/nginx636/logs/nginx.pid` 
 
find /var/log/nginx/ -name "sendsadmin.access.*" -type f -ctime +30 -exec rm {} ; > /dev/null 2>&1 
find /var/log/nginx/ -name "api.sends.cc.access.*" -type f -ctime +30 -exec rm {} ; > /dev/null 2>&1 
find /var/log/nginx/ -name "blog.sends.cc.access.*" -type f -ctime +30 -exec rm {} ; > /dev/null 2>&1 
find /var/log/nginx/ -name "error.*" -type f -ctime +30 -exec rm {} ; > /dev/null 2>&1 

代码说明:
 

mv  sendsadmin.access.log sendsadmin.access.$(date +%Y%m%d).log 
#把日志文件sendsadmin.access.log改名为sendsadmin.access.(当天日期).log 

sudo kill -USR1 `cat  /usr/local/web/nginx636/logs/nginx.pid` 
#nginx重建日志文件 

find /var/log/nginx/ -name "sendsadmin.access.*" -type f -ctime +30 -exec rm {} ; > /dev/null 2>&1 
#find -- 查找 
#/var/log/nginx/ -- 查找日志目录 
#-name "sendsadmin.access.*" -type f -- 找以"sendsadmin.access."开头的文件 
#-ctime +30 -- 查找距离当日30天前文件 
#-exec rm {} ; -- 找到后执行linuxjishu/13981.html target=_blank class=infotextkey>rm命令 
#> /dev/null 2>&1 -- 输出重定向 

保存nginx日志分割脚本为本地文件cutlogs.sh,并在crontab中设置为每天23:59运行:
sudo vi /etc/crontab 

添加: 
 

复制代码 代码示例:
59 23 * * * root  /bin/bash /usr/local/web/nginx636/conf/cutlogs.sh 

您可能感兴趣的文章:
nginx 日志分割的小脚本
分享:Logrotate分割nginx日志的脚本
nginx日志配置、Nginx日志分割
nginx日志按天分割的方法分享(图文)
一个分割ngnix网站日志的Shell脚本
Nginx日志切割的简单方法