nginx清理日志

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx清理日志相关的知识,希望对你有一定的参考价值。

参考技术A 最近维护服务器发现系统盘还有2g左右了,估计是哪里的日志又多了,好久没维护了。
先做如下步骤查找:
1、cd 到服务器根目录 一层层查找文件大小,使用如下命令:

2、终于找了大的文件了

cd logs,然后可以看到access.log这个文件最大
直接rm -rf access.log 删除后 没有立即生成log文件
那就重启一下 nginx
service nginx restart

Nginx脚本方式切割日志

#!/bin/bash

#Nginx的log日志目录

log_path=‘/opt/app/nginx/logs/‘

#Nginx的pid文件存放目录

pid_path="${log_path}nginx.pid"

#清理掉指定日期前的日志

DAYS=60

#生成昨天的日志文件

#若指定10天前  date -d"10 day ago 2017-06-08" +%Y-%m-%d

mv ${log_path}access.log ${log_path}access_$(date -d "yesterday" +"%Y%m%d").log

mv ${log_path}error.log ${log_path}error_$(date -d "yesterday" +"%Y%m%d").log

kill -USR1 `cat ${pid_path}`

#文件夹大小转换成M

#文件大小默认是字节

size=`du -b ${log_path} | awk ‘{print int($1/1024/1024)}‘`

#删除60天前的文件

if [ "$size" -gt "1000" ];then

  #find  对应目录  -mtime +天数   -type f -name "文件名" -exec rm -rf {} \;

  find ${log_path} -mtime +$DAYS -type f -name "*.log" -exec rm -rf {} \;

fi


#下面是任务计划

[[email protected] ~]# cat /var/spool/cron/root 

SHELL=/bin/bash

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

export $PATH


0  0 * * * /bin/sh /opt/log_backup.sh


#赋予权限

chmod +x /opt/log_backup.sh

以上是关于nginx清理日志的主要内容,如果未能解决你的问题,请参考以下文章

nginx--基于crond定时服务+shell脚本实现nginx日志自动清理及备份

nginx日志文件按天记录定时清理循环记录

Centos7-nginx 日志手动或定时清理目录

tomcat,nginx日志定时清理

Nginx优化——日志分割

Linux定时清理磁盘日志文件——Shell脚本