【CentOS 7LNMP架构25】,nginx日志切割#

本文介绍了一个自定义Shell脚本实现Nginx日志文件的自动切割及旧日志清理的方法,通过cron定时任务实现日志管理自动化,有效避免日志文件过大导致的性能问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

shallow丿ove


nginx日志切割

  • 自定义shell脚本
  • vi /usr/local/sbin/nginx_log_rotate.sh #!/bin/bash ##假设nginx的日志存放路径为/data/logs/ d=date -d "-1 day" +%Y%m%d logdir="/data/logs" nginx_pid="/usr/local/nginx/logs/nginx.pid cd $logdir for log in ls *.log do mv $log $log-$d done /bin/kill -HUP cat $nginx_pid
  • crontab -e 0 0 * * * /bin/bash /usr/local/sbin/nginx_log_rotate.sh
[root@localhost vhost]# vi /usr/local/sbin/nginx_logrotate.sh
      1 #!/bin/bash
      2 d=`date -d "-1 day" +%Y%m%d`
      3 logdir="/tmp/"
      4 nginx_pid="/usr/local/nginx/logs/nginx.pid"
      5 cd $logdir
      6 for log in `ls *.log`
      7 do
      8         mv $log $log-$d
      9 done
     10 /bin/kill -HUP `cat $nginx_pid`

[root@localhost vhost]# sh -x /usr/local/sbin/nginx_logrotate.sh
++ date -d '-1 day' +%Y%m%d
+ d=20180103
+ logdir=/tmp/
+ nginx_pid=/usr/local/nginx/logs/nginx.pid
+ cd /tmp/
++ ls test.com.log
+ for log in '`ls *.log`'
+ mv test.com.log test.com.log-20180103
++ cat /usr/local/nginx/logs/nginx.pid
+ /bin/kill -HUP 5676
[root@localhost vhost]# ls /tmp
mysql.sock  pear  php-fcgi.sock  test.com.log  test.com.log-  test.com.log-20180103

[root@localhost vhost]# crontab -e
	0 0 * * * /bin/bash /usr/local/sbin/nginx_log_rotate.sh

将一个月之前的日志作删除

[root@localhost vhost]# find /tmp/ -name *.log-* -type f -mtime +30 | xargs rm

mtime +30将一个月以前的日志作删除

加入任务计划

[root@localhost ~]# crontab -e
0 0 * * * /bin/bash /usr/local/sbin/nginx_logrotate.sh

转载于:https://my.oschina.net/u/3892756/blog/3069405

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值