如何减少文件名而不是索引节点号?


11

我有一个软件,在重新启动时会旋转其日志文件。但是,在开发过程中,我经常重新启动它,因此我想随时监视最新的日志文件。

如果我less正常开始,less program.log然后按Shift+ f尾,则在旋转日志文件时,我会继续监视旧的日志文件。我认为这是因为inode编号保持不变,并且less具有该inode的打开文件句柄。

是否可以监视当前称为任何日志文件的最新活动program.log

具体来说,我正在使用Sun OS,因此理想的解决方案是在其中运行。


也许tail -F program.log | less会起作用
sendmoreinfo 2013年

tail -f program.log 你尝试过这个吗?
拉胡尔·帕蒂尔

Answers:


17

less --follow-name如果您的less支持版本使用。该选项在版本416中引入。


优秀的答复。Solaris 10和Solaris 11都使用较少的436版本,因此该选项确实可用。
unixhacker2010

5

less选项--follow-name只是解决方案的一部分;
要替换tail -F,需要另一个参数:

less --follow-name +F file.log

单独的like之类的选项less --follow-name file.log实际上并未在文件更新之后开始。您需要按进入跟随模式ShiftF
(退出模式以导航ControlC。)

而不是关注文件,而是--follow-name 修改 less 的行为
它使命令键ShiftF的内部less基于文件名,而不是文件描述如下。

同样,没有正常的选项可以less在跟随模式下启动。
但是,您可以使用命令行为它们添加前缀,以使它们在启动后执行+。实际上,将
修饰符选项与组合在一起将以(修改的)跟随模式开始。 +Fless

+F单独使用相当于Plain tail -f

less +F file.log

1

我刚刚在此U&L问答题中找到了答案:如何进行tail -f日志轮换文件?

使用tail

(如果可以选择在系统上安装GNU tail)

tail -F program.log

尾页手册页

   -f,      --follow[={name|descriptor}]
            output appended data as the file grows; -f, 
            --follow, and --follow=descriptor are equivalent

   -F       same as --follow=name --retry

   --retry  keep  trying  to  open  a  file even when it is or becomes
            inaccessible; useful when following by name, i.e., with
            --follow=name

关键是--retry开关。这告诉tail命令继续尝试按名称跟踪文件。该-F开关确实既-f--retry

使用 less

正如@StephaneChazela在评论中指出的那样,以下操作无效。

tail -F program.log | less

您唯一的其他选择是假设直接支持--follow-name开关和less文件,直接使用较少的内容,而tail完全放弃使用。

less --follow-name program.log

有时我强烈不喜欢Sun OS ...
Alex Chamberlain

我同意,我工作了多年,它让您发疯了,对于某些应用程序而言,该工具的使用年限已长达10年。没有意义。该站点对于保持Solaris的健全性非常宝贵:sunfreeware.com/introduction.html
slm

如果您想更加理智,请查看pkgsrc.org :)
sendmoreinfo 2013年

那不会很好。因为less如果执行“ G”或“ F”会挂起。您可以通过执行“ Ctrl-C”来打断它,但是它会杀死尾巴。然后,您可以对Ctrl-C免除尾巴,但是它仍然不是很有用。
斯特凡Chazelas

关于GNU尾部:请查看此内容,以获取有关在任何Solaris主机上应使用哪些工具的信息。(实际上,默认情况下,Solaris 11中存在GNU尾部)。Solaris系统管理员通常会使他们的用户感到困难,因为他们将安装工作留给了非常简单的安装,而如今,Solaris的GNU工具实际上可直接从Oracle获得,或者在某些情况下是默认安装的一部分。没有理由不使其成为您安装的一部分。没有理由去“非官方”回购。见链接。
unixhacker2010
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.