[问题已处理]-linux使用日志切割后大小无法改变

为了不影响部署在linux服务器上的应用系统正常运行,一般情况下都需要将系统运行日志进行分割,但是很多方法都是遵循:"  添加定时任务  先复制压缩  再清空原日志文件" 的思路,压缩一般都是没问题,但是在清空原日志文件时会遇到执行清空命令后原日志文件大小仍不改变:

例如:

采用  echo "" > nohup.out

采用  cat /dev/null > nohup.out

采用  cp /dev/null  nohup.out

采用  logrotate 工具等方法 将nohup方式运行重定向输出日志文件分割后

通过  ll 查看日志文件大小 日志文件大小并未变小仍是分割前的大小

通过 du -sh 查看会发现日志文件变小了

这种现象的原因是由于在 nohup 重定向输出启动时 采用了  ">" 清空重定向的方式 而不是  ">>"追加重定向的方式

通过修改启动文件的nohup重定向输出方式为  追加JAVA_CMD="nohup $JAVA_HOME/bin/java $JAVA_OPTS $APP_MAINCLASS >execute.log 2>&1 &"

echo "" > nohup.out 

这样之后 nohup.out的大小就会改变,从0开始增长了也达到了分割日志的目的

 

今天再生产上就发现了一个问题,没有使用追加导致日志被清空之后,仍旧会显示原来大小.

 

我这边尝试了 cat /dev/null > execute.log 

但是有新日志打入之后 ll -h日志文件又会显示原来大小

 

修改如下之后 的确没问题了

 

JAVA_CMD="nohup $JAVA_HOME/bin/java $JAVA_OPTS $APP_MAINCLASS >>execute.log 2>&1 &"

 

 

以后脚本还是稳一点

先cat /dev/null > execute.log

然后再追加

nohup $JAVA_HOME/bin/java $JAVA_OPTS $APP_MAINCLASS >>execute.log 2>&1 &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值