tail –f一段时间后,监视 apache 日志往往会让眼睛感到非常沮丧。是否有任何工具/选项可以为日志输出着色?也许用红色等信号表示致命...
我喜欢less,我可以用它来跟踪带有+F标志(或ShiftF热键)的日志,向前和向后搜索,并且通常可以在文档中自由移动。
但是在 中缺少一件事less:通常我在文件的末尾,我想看到新的事情发生。在tail -f我只会点击enter几次,新的日志行会与旧的行明显分开。
是否可以将其添加到less?如何?
所以我有两个文件,如果其中一个文件中出现新行,我希望收到包含该行内容的 IM(最好是 jabber 或 gTalk)。你们对Linux守护程序或可以做到这一点的东西有什么建议吗?
有没有办法做这样的事情:
tail -f logs/
Run Code Online (Sandbox Code Playgroud)
并使 stdout 在添加到已存在于 logs/ 中的每个文件的每一行上以及在发出命令后将在 logs/ 中创建的每个文件上更新?
我看到tail -f在 CoreOS 的 Docker 容器内运行命令时出现了一些奇怪的行为。
我能想到的许多变量可能会导致问题,但我不确定首先需要做什么来排除故障。在 CoreOS 上,我正在运行支持 overlayfs 的最新版本,以及较新版本的 Docker (1.4.1)。
有趣的是,我能够在运行不同版本 Docker (1.3) 的不同主机操作系统 (Ubuntu 14.04) 上成功跟踪日志。
如果这有助于排除故障,我可以生成 strace 日志,它们似乎在主机之间存在显着差异。例如,在不工作的主机上,在 strace 输出中读入以下内容后,strace 停止:
04:03:03 inotify_add_watch(4, "f017f0a1-a1e9-11e4-90bc-027e0f87cac6-paster.log", IN_MODIFY|IN_ATTRIB|IN_DELETE_SELF|IN_MOVE_SELF) = 1 <0.000028>
04:03:03 fstat(3, {st_mode=S_IFREG|0644, st_size=12229, ...}) = 0 <0.000022>
04:03:03 read(4, 0x7711f0, 64) = ? ERESTARTSYS (To be restarted if SA_RESTART is set) <3.101545>
Run Code Online (Sandbox Code Playgroud)
我只是对 strace 不够熟悉,无法很好地解释结果。
我在托管的 Web 服务器上没有 root 访问权限,但我想使用MultiTail 之类的工具来监视在我的 Web 主机上生成的日志文件。
有没有办法将远程主机(我有 ssh 访问权限)上的日志输出通过管道传输到本地运行的 MultiTail?
本地机器运行的是 Ubuntu 9.04。远程机器正在运行 FreeBSD 6。
==
简而言之,答案是:
1) 为 ssh 设置基于密钥的登录。
2)执行以下命令:
multitail -l "ssh -l USER HOST tail -f ./www_logs/access_log" -l "ssh -l USER2 HOST2 tail -f ./www_logs/access_log"
Run Code Online (Sandbox Code Playgroud) 我使用的是 Mac,并且使用 Finder 中的“连接到服务器”在我的文件系统中安装了一个 Windows 网络磁盘。
在终端中,当我对位于所述网络磁盘上的日志文件执行 tail -f 操作时,当新行写入日志文件时,tail 不会更新显示。我假设 tail 通常会在文件更新时侦听某些 os 事件,并且在尾随网络驱动器上的文件时这不起作用。
如何解决这个问题呢?另一个程序?
我使用 log4j 从我的程序创建滚动日志文件。它写入一个日志文件,直到它达到 256mb,然后它重命名所有日志文件并创建一个新的日志文件并继续记录。
在我的程序运行时监视这些日志文件对我来说非常有用,因此我在日志文件上运行“tail -f”以实时查看它。
问题发生在发生日志轮换时,这不会在可预测的时间发生。“Tail”跟随具有特定句柄的文件,无论其名称如何,因此当发生旋转时,tail 指向不再记录到的旧文件。如果我停止并重新运行该命令,它将再次找到当前文件。
如何自动跟踪最新的日志文件?如何跟踪具有给定名称的文件,以便日志轮换始终显示最新文件的输出?
谢谢!
如何持续监控不断被覆盖的文件?具体来说,该文件包含一行文本,后台进程反复打开和重写该文本。
我希望tail -F会起作用,但它没有。
更新:我希望这不相关,但我正在运行 Mac OS X 10.5.8。
这是 Ubuntu (3.13.0-29-generic #53),尝试做一个简单的 bash 脚本来监控匹配行的日志文件。
如果我执行以下操作,则 bash shell 中除了匹配项之外没有任何输出,这是预期的:
tail -F server.log | grep --line-buffered "word" | tee -a wordwatch.log
但是如果我尝试在屏幕上做同样的事情,会话就会收到来自监视日志文件的不匹配数据的垃圾邮件。显然,它显示了监视日志文件中的所有内容。此垃圾邮件不会出现在输出日志文件中。
screen -S "wordwatch" tail -F server.log | grep --line-buffered "word" | tee -a wordwatch.log
我做错了什么,如何阻止监视的日志向屏幕会话发送垃圾邮件?