logrotate切割nohup日志大小不变

阿里云1000元通用代金券点此领取

昨天线上服务器磁盘报警,登录后查看发现单个应用日志nohup.out达到了十几个G,明明做了logrotate日志切割,日志还是在不断的增大

logrotate配置文件如下

/data/tomcat/*/*.log {
su root root  # centos7上不加这里会报错 error: skipping...Set "su" directive in config file to tell logrotate which user/group should be used for rotation.
rotate 15
daily
copytruncate
compress
notifempty
missingok
}

查看 /var/lib/logrotate.status 确实执行了日志切割,而且目录里有日志切割后的压缩文件,大小也正常

通过ll -h 查看日志文件有十几个G,但是用du -sh 文件发现只有几十M

发现启动命令中 nohup xxx.sh > nohup.out & 重定向输出用的是 > ,这种情况如果服务不停止,文件占用的磁盘空间不会被释放。就算手动执行 > nohup.out 清空了日志变成0kb,下一条日志开始写的时候还是会变成清空之前的大小。

解决方案:
> 替换成 >> 追加的形式,就可以被logrotate正常切割
比如nohup xxx.sh >> nohup.out &

你可能感兴趣的:(linux)