Linux下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 &
这样执行日志就是以追加的方式写入文件,当我们需要清空日志时执行清空命令,然后新的日志会追加进去而不是再覆盖进去。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
服务器端包含、嵌入技术SSI(Server SideInc lude)详解
这篇文章主要介绍了服务器端包含、嵌入技术SSI(Server SideInc lude)详解,本文包含SSI简介、SSI的语法、SSI的一些常用命令等,SSI最明显的特征是网页的扩展名师.shtml,一些大网站也常用这种技术,需要的朋友可以参考下2014-07-07
Linux安装yum时出现apt-get install E: 无法定位软件包问题解决
这篇文章主要介绍了Linux安装yum时出现apt-get install E: 无法定位软件包问题解决的相关资料,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考借鉴价值,需要的朋友可以参考下2024-12-12


最新评论