linux nginx 日志按天存储实现

一、通过linux自带的logrotate实现

进入/etc/logrotate.d/,创建nginx 

vi /etc/logrotate.d/nginx

编写的脚本如下:

/usr/local/nginx/logs/*.log{
      daily
      rotate 15
      minsize 10M
      sharedscripts
      postrotate
      sudo service nginx reload>/dev/null 2>&1
      endscript
}

 注:

  •  /usr/local/nginx/logs/*.log   日志存放目录
  • daily 日志按天分割
  • rotate 最多保留15份
  • 10m以下的不处理 
  • reload nginx,防止日志不写到新的文件中

然后执行sudo /usr/sbin/logrotate /etc/logrotate.conf 重新加载

 

二、通过shell脚本+crontab定时任务自动扫描

 shell 脚本如下:

#获取日期 特别注意 “`”这个符号是esc键下,tab键上面,1旁边的在英文状态下的输入。
file_name=`date +%Y%m%d`
#文件移动并重命名
mv "/usr/local/nginx/logs/access.log" "/usr/local/nginx/logs/access"$file_name".log"
#nginx 日志重新打开
./nginx -s reopen

特别注意:date 前面的符合,我因为这个符合折腾了好久。

 

我上面的脚本是放在nginx安装目录的sbin目录下面。

然后通过crontab配置每天跑的定时,就可以搞定了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值