是否可以修剪.log
文件顶部的行,而另一个进程使用ruby对其进行tail -f
?
答案 0 :(得分:3)
你不能“修剪”文件的开头,只能修剪树的树干并期望它保持相同的高度。
“tail”进程依赖于当前文件大小来知道定期读取的位置。它从最后的文件长度读取到文件结尾,然后记住该文件长度并休眠。它会唤醒并再次向前读取文件结尾。
如果从文件前面“删除”行,无论如何都无法在顺序文件中执行,则会将文件缩短为小于记住的文件长度值,并尝试阅读在文件的末尾。
如果目的是减小文件大小,则有各种文件或日志滚动技术。通常,它们将给定数量的行从文件末尾复制到新文件,然后执行一些文件重命名以将旧文件临时存档在“.bak”或带时间戳的文件中,从而允许拖尾过程继续读取其原始文件文件。