linux tail的高阶使用

最近在写 Workrecord 这个小项目,想完成对通过SSH方式登录到服务器上的用户的活跃情况进行记录。 已经试运行了一个阶段,目前发现一个小问题是总是在跟踪服务器一个系统日志如 /var/log/messages 时,跟着跟着就丢失了,经过进一步的分析发现,丢失的时间点与 messages文件的压缩时间吻合,想到可能是 messages被压成 messages.bz2了,所以tail也就跟踪丢失了。

于是开始在这个方向上造轮子,在perl里写了一些监测到<FILE>异常时,进行重新打开,但发现问题并没有得到很好的解决。 今天进阶阅读tail的man page时发现: –follow=name –max-unchanged-stats=N –retry 这几个设计正是针对我所遇到的情况,侦测当前所tail的文件,发现几次没变化之后,尝试重新打开该文件,甚好! 修改前: shell> tail -f myfile 修改后: shell> tail –follow=name –max-unchanged-stats=5 –retry myfile 即可解决,因为被监测的文件改名,挪走或者转压缩引起的问题。  

This entry was posted in 编程技术, 计算机技术 and tagged , , . Bookmark the permalink.

发表评论

电子邮件地址不会被公开。 必填项已用*标注