使用 watch 和 tail 命令监视 Linux 上的活动
创始人
2024-03-02 11:05:37
0

watch 和 tail 命令可以帮助监视 Linux 系统上的活动。本文介绍了这两个命令的一些有用的使用方法。

watchtail 命令为持续监视 Linux 系统上的活动提供了一些有趣的选项。

也就是说,你可以通过 watch 来显示谁已登录,并随着用户登录和注销不断更新,而不是仅仅提出问题并获得答案(例如询问 who 并获取当前登录用户的列表)。

使用 tail,你可以显示文件的底部并在添加内容时查看内容。这种监控一般非常有用,并且比定期运行命令所需的工作更少。

使用 watch 命令

使用 watch 的最简单示例之一是使用命令 watch who。你会看到一个列表,其中显示了谁登录了,以及他们登录的时间和登录位置。请注意,默认设置是每两秒更新一次显示(左上角),日期和时间(右上角)将按该间隔自行更新。用户列表将随着用户登录和注销而增长和缩小。

$ watch who

此命令将显示如下所示的登录列表:

Every 2.0s: who                              dragonfly: Thu Feb 27 10:52:00 2020

nemo     pts/0        2020-02-27 08:07 (192.168.0.11)
shs      pts/1        2020-02-27 10:58 (192.168.0.5)

你可以通过添加 -n 选项(例如 -n 10)来修改更新间的不同秒数,以修改更新间隔,从而获取较少的更新频率。

$ watch -n 10 who

上述命令将以新的间隔显示,并且显示的时间更新频率较低,从而使显示时间与所选间隔保持一致。

Every 10.0s: who                             dragonfly: Thu Feb 27 11:05:47 2020

nemo     pts/0        2020-02-27 08:07 (192.168.0.11)
shs      pts/1        2020-02-27 10:58 (192.168.0.5)

如果你希望仅查看命令的输出,而不是标题(前 2 行),则可以通过添加 -t(无标题)选项来省略这些行。

$ watch -t who

然后,你的屏幕将显示如下所示:

nemo     pts/0        2020-02-27 08:07 (192.168.0.11)
shs      pts/1        2020-02-27 10:58 (192.168.0.5)

如果每次运行监视的命令时,输出都是相同的,则只有标题行(如果未省略)会更改。其余显示的信息将保持不变。

如果你希望 watch 命令在它正在监视的命令的输出发生更新后立即退出,则可以使用 -g(将其视为“ 离开 go away ”)选项。例如,如果你只是在等待其他人开始登录系统,则可以选择执行此操作。

你还可以使用 -d( 差异 differences )选项突出显示显示输出中的更改。突出显示只会持续一个间隔(默认为 2 秒),但有助于引起你对更新的注意。

下面是一个更复杂的示例,该示例使用 watch 命令显示正在侦听连接的服务及其使用的端口。虽然输出不太可能更改,但它会提醒你任何新服务正在启动或关闭。

$ watch 'sudo lsof -i -P -n | grep LISTEN'

值得注意的是,正在运行的命令需要用引号扩起来,以确保不会将 watch 命令的输出发送到 grep 命令。

使用 watch -h 命令将为你提供命令选项的列表。

$ watch -h

Usage:
 watch [options] command

Options:
  -b, --beep             beep if command has a non-zero exit
  -c, --color            interpret ANSI color and style sequences
  -d, --differences[=]
                         highlight changes between updates
  -e, --errexit          exit if command has a non-zero exit
  -g, --chgexit          exit when output from command changes
  -n, --interval   seconds to wait between updates
  -p, --precise          attempt run command in precise intervals
  -t, --no-title         turn off header
  -x, --exec             pass command to exec instead of "sh -c"

 -h, --help     display this help and exit
 -v, --version  output version information and exit

使用 tail -f

tail -f 命令与 watch 有一些相同之处。它也会在添加文件时显示文件的底部和其他内容。你不必一次又一次地运行 tail 命令,而是运行一个命令并获得可重复更新显示视图的结果。例如,你可以使用如下命令查看系统日志:

$ tail -f /var/log/syslog

某些文件(如 /var/log/wtmp)不适合这种类型的处理,因为它们的格式不是普通文本文件,但是通过组合 watchtail,你可以获得类似的结果,如下所示:

watch 'who /var/log/wtmp | tail -20'

无论有多少用户仍处于登录状态,此命令都将只显示最近的 5 次登录。如果发生其他登录,显示结果将添加一行记录并删除顶行记录。

Every 60.0s: who /var/log/wtmp | tail -5    dragonfly: Thu Feb 27 12:46:07 2020

shs      pts/0        2020-02-27 08:07 (192.168.0.5)
nemo     pts/1        2020-02-27 08:26 (192.168.0.5)
shs      pts/1        2020-02-27 10:58 (192.168.0.5)
nemo     pts/1        2020-02-27 11:34 (192.168.0.5)
dory     pts/1        2020-02-27 12:14 (192.168.0.5)

对你有时可能想要监视的信息,无论监视进程、登录名还是系统资源,watchtail -f 命令都可以提供自动更新视图,从而使监视任务变得更加容易。


via: https://www.networkworld.com/article/3529891/watching-activity-on-linux-with-watch-and-tail-commands.html

作者:Sandra Henry-Stocker 选题:lujun9972 译者:Starryi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

6月11日见!华为WATC...
6月3日,华为终端官方微博发布华为WATCH 5产品预热海报,宣布...
2025-06-03 17:12:38
BirdWatcher 1...
近期,BirdWatcher 1.0.1 发布&#x...
2025-05-30 05:53:09
MWC2025荣耀多款AI...
人民财讯3月6日电,2025世界移动通信大会(MWC 2025)上...
2025-03-06 15:51:18
不再在Docker中使用d...
不再在Docker中使用dotnet watch的主要理由是它会导...
2025-01-11 16:31:20
不再支持的产品类型“com...
如果您使用的是WatchKit 1.0版本且收到了"不再支持的产品...
2025-01-11 16:31:13
不允许使用多个统计命令(C...
如果不允许使用多个统计命令,可以使用子查询来达到相同的效果。以下是...
2025-01-11 12:00:27

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...