欢迎光临散文网 会员登陆 & 注册

5、nginx日志切割和删除

2021-08-30 13:38 作者:Vecloud_  | 我要投稿


5、Nginx日志切割和日志定期删除 


LogDir=/data/logs/nginx  #日志存放目录 
LogDate=`date +%Y%m%d`  #日志名称后缀 


KeepLogDays=30  #保留的天数(看自己的需求) 


DelDate=`date -d "-${KeepLogDays} days" +%Y%m%d` #当前时间的前三十天时间戳(是一个具体的日期) 
(-d参数是删除 语法:date -d 3days 双引号引用的话中间可以有空格 否则会报错) 
(+%Y%m%d参数是打印日期的格式 语法:date +%Y%m%d ) 


Logs=`ls -l /data/logs/nginx/*.log|awk -F'/' '{print $NF}'`  #日志存放目录下以.log结尾的日志名称 


[ -d $LogDir/$LogDate ] || mkdir $LogDir/$LogDate  #判断日志存放目录下当前时间戳的是否为目录 没有的话新建目录 


for i in $Logs; 
do 
  if [ -f $LogDir/$i ];then 
    touch $LogDir/$LogDate/$i 
    ln -sf $LogDir/$LogDate/$i $LogDir/$i 
  fi 
done 
#把所有的Logs都新建在当前时间戳的目录里面,并且在上层目录下建立软链文件 


kill -USR1 `cat /DIR/nginx.pid`#你的nginx.pid存放路径 看配置文件 


if [ x$KeepLogDays != x0 ];then 
  rm -rf $LogDir/$DelDate 
fi 
#变量KeepLogDays不为零的时候删除DelDate变量代表 


PS:把这个脚本写成定时任务,每天00:00执行一次即可

了解更多网络知识关注:http://www.vecloud.com/

5、nginx日志切割和删除的评论 (共 条)

分享到微博请遵守国家法律