微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

bash – 尾部采样日志

我有一个进程需要对不断增长的日志文件进行定期处理.现在,我这样做的方式非常简单(如果你真的很好奇,我会包含bash脚本).

>启动tail -n0 -f $FILE
>每次迭代:

>杀死尾巴
>移动旧样本
>开始新的尾巴

解决了没有任何重叠的问题,但我担心我可能错过的1或2行.有没有更好的方法来避免重叠(和“下”圈)?

解决方法

通过“移动旧样本”,我假设您的意思是通过移动当前文件并用新文件替换它来旋转文件.

如果是这样,那么你可以使用–follow = name选项代替-f.这遵循文件名而不是文件描述符,即使文件被替换也允许它继续.然后,您可以在更换文件时保持尾部运行,不会错过任何条目.

对于更健壮的方法,还包括–retry,或者简单地使用-F,这意味着–follow = name –retry.

从手册页:

-f,--follow[={name|descriptor}]

output appended data as the file grows; -f,--follow,and --follow=descriptor are equivalent

  
   – 重试
  
  

keep trying to open a file even if it is inaccessible when tail starts or if it becomes inaccessible later – useful only with -f

  
  -F
  
  

same as --follow=name --retry

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐