当前位置: 首页 > 科技观察

使用watch和tail命令监视Linux上的活动

时间:2023-03-13 22:27:21 科技观察

watch和tail命令可以帮助监视Linux系统上的活动。本文介绍了这两个命令的一些有用用法。watch和tail命令提供了一些有趣的选项,用于持续监视Linux系统上的活动。也就是说,您可以拥有一个显示登录用户并在用户登录和注销时不断更新的手表,而不是仅仅提出问题并获得答案(例如询问谁并获得当前登录用户的列表)。使用tail,您可以显示文件的底部并查看添加的内容。这种监视通常非常有用,并且比定期运行命令需要更少的工作。使用watch命令使用watch的最简单示例之一是使用命令watchwho。您会看到一个列表,显示谁登录、登录时间和登录地点。请注意,默认设置是每两秒更新一次显示(左上角),日期和时间(右上角)将以该时间间隔自行更新.用户列表会随着用户登录和注销而增长和缩小。$watchwho此命令将显示如下所示的登录列表:每2.0秒:whodragonfly:ThuFeb2710:52:002020nemopts/02020-02-2708:07(192.168.0.11)shspts/12020-02-2710:58(192.168.0.5)修改更新间隔可以通过添加-n选项(如-n10)来修改更新间隔的不同秒数,从而获得更少的更新频率。$watch-n10who上面的命令会以新的时间间隔显示,显示时间的更新频率会降低,保持显示时间与选择的时间间隔一致。每10.0秒:whodragonfly:ThuFeb2711:05:472020nemopts/02020-02-2708:07(192.168.0.11)shspts/12020-02-2710:58(192.168.0.5)如果您只想查看命令的输出,而不是标题(前两行),则可以通过添加-t(无标题)选项来省略这些行。$watch-twho然后,您的屏幕将如下所示:nemopts/02020-02-2708:07(192.168.0.11)shspts/12020-02-2710:58(192.168.0.5)如果每次运行watched命令时输出都是相同的,只有标题行(如果没有省略)会改变。其余显示信息将保持不变。如果您希望watch命令在它正在监视的命令的输出更新后立即退出,您可以使用-g(将其视为“离开”)选项。例如,如果您只是在等待其他人开始登录系统,您可能会选择这样做。您还可以使用-d(差异)选项来突出显示输出中的更改。突出显示只会持续一段时间(默认情况下为2秒),但有助于引起您对更新的注意。下面是一个更复杂的示例,它使用watch命令显示正在侦听连接的服务及其使用的端口。虽然输出不太可能改变,但它会提醒您任何正在启动或关闭的新服务。$watch'sudolsof-i-P-n|grepLISTEN'值得注意的是,正在运行的命令需要用引号引起来,以确保watch命令的输出不会发送到grep命令。使用watch-h命令将为您提供命令选项列表。$watch-hUsage:watch[options]commandOptions:-b,--beepbeepifcommandhasanon-zeroexit-c,--colorinterpretANSIcolorandstylesequences-d,--differences[=<永久>]突出显示更新之间的变化-e,--errexit如果命令有非零退出则退出-g,--chgexit当命令输出改变时退出-n,--interval更新之间等待的秒数-p,--preciseattemptruncommandinpreciseintervals-t,--no-titleturnoffheader-x,--execpasscommandtoexecinsteadof"sh-c"-h,--help显示帮助并退出-v,--version使用tail-ftail-f命令输出版本信息并退出,与watch有一些相似之处。它还将显示文件的底部和添加的其他内容。您可以运行一个命令并获得重复更新显示视图的结果,而不是一遍又一遍地运行tail命令。例如,您可以使用以下命令查看系统日志:$tail-f/var/log/syslog有些文件(如/var/log/wtmp)不适合这种类型的处理,因为它们的格式不是普通的文本文件,但是结合watch和tail你可以得到类似这样的结果:watch'who/var/log/wtmp|tail-20'这个命令只会显示最近的5个,不管有多少用户还在登录。如果再次登录,显示结果会增加一行记录,删除最上面一行记录。每60.0秒:谁/var/log/wtmp|尾巴-5蜻蜓:2020年2月27日星期四12:46:07shspts/02020-02-2708:07(192.168.0.5)nemopts/12020-02-2708:26(192.168.0.5)shspts/12020-02-2710:58(192.168.0.5)nemopts/12020-02-2711:34(192.168.0.5)dorypts/12020-02-2712:14(192.168.0.5)对于您有时可能想要监视的信息,无论是监视进程、登录名还是系统资源,watch和tail-f命令都提供自动更新的视图,使监视任务变得轻而易举。