nginx优化——日志切割

1、使用logrotate工具切割

[root@docker ~]# cd /etc/logrotate.d/
[root@docker logrotate.d]# vim nginx

输入一下内容:

# /var/log/nginx/*.log为nginx存放目录
/var/log/nginx/*.log {
        daily                
        missingok            # 忽略错误
        rotate 52            # 最多保留多少个存档    
        compress             # 切割后且压缩
        delaycompress        # 延迟压缩动作在下一次切割
        notifempty           # 日志为空就不切割
        create 640 nginx adm # 切割的文件权限
        sharedscripts        # 共享脚本,结果为空
        postrotate           # 收尾动作,重新生成nginx日志
                if [ -f /var/run/nginx.pid ]; then
                        #pid文件的路径
                        kill -USR1 `cat /var/run/nginx.pid`
                fi
        endscript
}

效果: 

2、 使用脚本切割nginx日志

[root@docker shell]# vim nginx_log.sh


脚本内容:

#/bin/bash 
 
yesterday=$(date +%Y-%m-%d)  #取得服务器当前时间
 
savepath_log=' /opt/nginx/logs'#分割后的日志文件保存目录
 
nglogs='/opt/nginx/logs'  #nginx日志文件目录
 
 
 
#判断分割日志保存目录是否存在不存在则创建 
 
if [ ! -d ${savepath_log} ] 
 
then
 
mkdir -p ${savepath_log}
 
fi 
 
#通过mv命令将日志移动到分割后的日志目录里,然后发送kill -USR1信号给Nginx的主进程号,让Nginx重新生成一个新的日志文件。
 
mv ${nglogs}/access.log  ${savepath_log}/access_${yesterday}.log  #具体根据你的实际日志文件名路径 进行修改access.log名字
 
mv ${nglogs}/error.log  ${savepath_log}/error_${yesterday}.log  #具体根据实际日志文件名地址 修改error.log名字
 
mv ${nglogs}/host.access.log  ${savepath_log}/host.access_${yesterday}.log 
kill -USR1 $(cat /opt/nginx/logs/nginx.pid)  #通知nginx重新生成新的日志

 2.1、添加定时任务

 

[root@docker logs]# crontab -e
#输入以下定时任务记录
59  23  * * * /data/shell/nginx_log.sh

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值