nohup 日志重定向、日志清空

在linux 系统上可以使用nohup 来执行命令,nohup 可以像控制台一样完整显示程序输出的日志信息

简单的用法:

nohup /test.sh > /test.log  2>&1 &

这样test.sh 运行所有的日志信息都会记录在 test.log 中
在实际使用中 test.log 会随着程序运行的时长和日志量造成 test.log 增大也不方便管理,于是就想法清空日志
简单暴力的方法就是重启程序,会自动清空,但是如果在不重启程序的情况下清空文件内容,让日志文件重新记录

linux 清空文件方法有很多,这里举例说明使用:

 cp /dev/null  /test.log

这样 test.log 就变空了,可是在实际使用中发现,test.log 一会儿又会变化原大小,比如test.log 原大小为10KB 执行命令后大小为0KB 当程序运行有新日志时test.log 大小又马上变为10KB+ 但是内容只有新日志内容,没有清空前的内容了。

经过查阅资料和测试,最终找到问题了 > /test.log 是覆盖原文件内容,因为我们执行清空命令,原进程还是有原日志的信息因为对于进程已经获取到对应文件的句柄了。当有新日志时对应进程会直接覆盖内容,这样造成数据不一致

解决方法使用追加日志文件的方法,把执行命令修改为:

nohup /test.sh >> /test.log  2>&1 &

这样执行日志就是以追加的方式写入文件,当我们需要清空日志时执行清空命令,然后新的日志会追加进去而不是再覆盖进去。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值