如何定时清理Linux系统中的Nginx日志

 我来答
yexicheng
2015-01-13 · TA获得超过1.2万个赞
知道大有可为答主
回答量:8857
采纳率:69%
帮助的人:6970万
展开全部
nginx日志文件需要手动分割,创建脚本文件clear_log.sh
  文件路径/usr/local/nginx/clear_log.sh
  vi clear_log.sh。输入如下内容
  #!/bin/bash
  cp /usr/local/nginx/logs/error.log /usr/local/nginx/error-$(date -d “yesterday” +“%Y%m%d”).log
  #先复制原来的错误日志文件,请根据自己实际的日志路径填写
  cat /dev/null 》 /usr/local/nginx/logs/error.log
  #清空错误日志文件
  cp/usr/local/nginx/logs/access.log /var/log/nginx/access/access-$(date -d “yesterday” +“%Y%m%d”).log
  #先复制原来的正常访问日志
  cat /dev/null 》 /usr/local/nginx/logs/access.log
  #清空原来的正常访问日志
  创建dellog.sh文件,路径/usr/local/nginx
  vi dellog.sh
  #!/bin/sh
  find /usr/nginx/logs/error -mtime +7 -type f -name /*.log | xargs rm -f
  find /usr/nginx/logs/access -mtime +7 -type f -name /*.log | xargs rm -f
  #定期删除七天前的日志文件
  启动linux下的计划任务,将刚才创建好的两个shell脚本加入此计划
  crontab -e,输入如下内容
  0 0 * * * /usr/nginx/clear_log.sh
  #每天0点执行/usr/nginx/clear_log.sh
  0 0 * * * /usr/nginx/dellog.sh
  #每天0点执行 /usr/nginx/dellog.sh
  保存后退出,输入命令crontab root就会看到/var/spool/cron/文件夹下看到相应的副本文件root。至此完成nginx日志按天拆分与定期清除。
  逻辑详解:比如现在是3月18日0点0分,系统会自动执行clear_log.sh与dellog.sh两个shell脚本。clear_log.sh会把3月17日的日志文件分别生成为access_20140317.log与error_20140318.log,然后把原来的access.log与error.log分别清空。dellog.sh则会自动判断该文件的创建时间,如果是十五天前的就会自动清除
  上面就是Linux清理Nginx日志的方法介绍了,因为Nginx日志没有自动清理的功能,一般采用切割日志的方法进行处理。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式