Linux系统,定期自动清理Nginx日志

我要冲啦个人网站建设2020-08-01服务器

系统日志是一个很重要的东西,但同时如果Nginx日志文件不定期清理,会变得越来越大,空间就会给日志占完了,影响Nginx服务器的运行,下面我来介绍定期删除日志的实现方法,各位同学可参考。

Nginx的日志文件累积的太多,最后充满了整个磁盘空间,所以昨天做了一个可以定期自动删除的脚本dellogs.sh)。

  1. #!/bin/bash
  2. find /usr/local/nginx/logs/ -mtime +15 -type f -name *.log | xargs rm -f


上述脚本是将nginx/logs下面的15天之前的日志文件删除,可以参考上面的脚本删除其他程序(如PHP、Tomcat)的日志文件。不过使用脚本的时候需要将Nginx的日志文件进行自动分割,否则会删除正在写入的日志文件了。

Linux下定时分割Nginx日志的脚本(clear_log.sh):

  1. #!/bin/bash
  2. #
  3.  
  4. #Nginx Log 存放的路径Path
  5. logs_path="/data1/logs/"
  6.  
  7. mkdir -p ${logs_path}$(date -d "%Y")/$(date -d "%m")/
  8. mv ${logs_path}access.log ${logs_path}$(date -d "%Y")/$(date -d "%m")/access_$(date -d "%Y%m%d").log
  9. kill -USR1 'cat /usr/local/nginx/nginx.pid'


将脚本保存并使用chmod +x 命令指定可执行权限,最好还需要加入任务列表中(每天凌晨一点执行):

  1. [root@localhost ~]# crontab -e
  2. 00 01 * * * /bin/bash /root/shell/dellogs.sh
  3. 00 01 * * * /bin/bash /root/shell/clear_log.sh
  4. [root@localhost ~]# service crond restart
文章关键词
Linux系统
定期自动清理Nginx日志