个人日常切割日志方法

对于一般的运维和技术来说,每天不是查日志就是在查日志的路上。所以日志的管理规范以及大小,就会影响查看的效率。那该如何合理的管理日志文件的大小呢?毕竟服务只要服务程序不停止,日志每时每刻都会输出,时间越长日志肯定就越大。所以我们就需要将日志切割,并分时间去输出来保证文件不会过大。
那我这里就分享下个人常用的日志切割方法,希望对大家有用。

脚本切割
脚本1:

  #!/bin/bash
  yesterday=`date -d yesterday "+%F"`
  logdir=/www/logs/php/
  pidfile=/www/logs/php/php-fpm.pid
  logname="php-fpm.log"
  [ -d ${logdir} ] && cd ${logdir} || exit 1
  [ -f ${loname} ] || exit 1
  mv  ${logname}  ${logname}-${yesterday}
  kill -USR1  `cat ${pidfile}`

脚本2:

#!/bin/bash
yesterday=`date -d yesterday "+%F"`
logdir=/www/logs/php/
backupdir=/www/logs/php/backup/

cp  ${logdir}php-fpm.log    ${backupdir}php-fpm.log-${yesterday}
echo >  ${logdir}php-fpm.log

配上定时任务:

   0  0  *  *  *  /usr/local/php/bin/cut_phplog.sh

logrotate切割

/web/www/nginxlogs/*.log {
daily
missingok
rotate 93 
dateext
# compress
delaycompress
notifempty
dateformat .%Y%m%d%H
create 640 root root 
sharedscripts
postrotate
[ -f /usr/local/nginx/logs/nginx.pid ] && /usr/local/nginx/sbin/nginx -s reload 
endscript
}

配上定时任务:

59 23 * * * /usr/sbin/logrotate -f /usr/local/nginx/etc/nginxlog

附:以上的3个方法,其实个人还是会更加倾向使用第二个,因为简单方便,并且适用任何日志的切割,毕竟在生产环境下,不是所有的服务都可以随时重启或者是reload配置文件,并不会出现报错。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值