如何使用 Linux 上的 watch 命令定期运行程序

有时,您需要反复运行命令或程序来监视系统的各个方面,如正在运行的进程、磁盘空间使用情况或用户登录情况。Linux中的watch命令使您能够自动执行这些任务,而无需手动一遍又一遍地运行它们。

使用此命令,您可以实时监视系统活动,如用户登录、网络状态、内存和CPU使用情况、磁盘空间等。让我们看看如何在Linux中使用watch命令。

什么是watch命令? watch命令在Linux中反复运行指定的命令或程序,以固定时间间隔,并在终端中显示其输出。这使您能够实时观察输出的变化。它会在每个时间间隔刷新输出,覆盖上一个输出。默认情况下,该命令每两秒重复一次,直到您使用Ctrl + C手动停止它。

watch命令的语法

watch命令的语法如下:

watch 选项 <命令>

有各种可用于watch命令的命令行选项。如果您运行watch命令而没有任何选项,它将每隔两秒运行一次指定的命令。例如,以下命令将显示ls命令的输出:

watch ls -l ~/

输出将显示目录列表中的更改,如果创建了文件、删除了文件或文件大小发生变化,它将每两秒刷新一次输出。

使用watch命令每隔X秒运行一个命令

您可以更改watch命令的更新间隔。这意味着您可以告诉watch命令在重复命令之前等待X秒。要更改更新间隔,请使用-n选项,后面跟随以秒为单位的时间间隔。

watch -n

例如,要每隔5秒运行一次命令,请运行:

watch -n 5 <command>

突出显示更新之间的变化

watch命令会在每次刷新时覆盖其输出。使用-d选项,您还可以突出显示先前输出和更新后输出之间的变化。

watch -d

隐藏watch命令输出中的标题

默认情况下,watch命令在每个输出的顶部显示一个标题,其中包含更新间隔、命令名称以及系统的当前日期和时间。您可以使用-t选项从输出中删除标题:

watch -t <command>

在错误时播放蜂鸣声

当Linux进程完成运行时,它会返回一个退出代码。按照惯例,成功时该值为0,非零表示错误。watch命令的-b选项会在命令返回非零退出代码时播放蜂鸣声。

假设您想要监视sshd.service,并在服务停止时收到通知,您可以使用:

watch -b sudo systemctl status sshd.service

该命令将在服务停止时发出蜂鸣声。当服务恢复运行时,蜂鸣声将停止。要使用此功能,您必须在系统上安装了beep软件包。

在输出更改时退出watch命令

您还可以告诉watch命令在命令的输出更改时停止运行并退出。您可以使用-g选项来实现这一点。在等待输出中的某些变化时,此选项非常有用。

一旦输出发生变化,watch命令将停止。您可以将此用法与echo命令结合使用,以在屏幕上显示消息。

例如,考虑一个场景,您正在等待一个文件出现在您的目录中。以下命令将监视指定文件的目录。一旦出现,watch命令将停止运行,并且终端上将显示消息”file arrived“。

watch -g "ls -l | grep filename" && echo "file arrived"

另一个有用的示例是在特定用户登录到系统时进行通知:

watch -g "who | grep username" && echo "username logged in"

此命令将监视who命令的输出,该命令列出已登录的用户。一旦用户登录,watch命令将停止并在终端上显示消息。

类似地,您可以告诉watch命令在文件中进行更改时停止服务。请注意,在使用一系列命令的管道链时,您需要将整个命令括在引号内。

监视Linux系统中的活动

如果您发现自己反复执行相同的流程,请考虑使用watch命令来自动化它。这可以使您免于频繁键入命令以查看发生了什么变化。

您还可以将watch命令与其他Linux命令一起使用,以监视系统资源和活动,并跟踪文件或目录中的更改。

The post 如何使用 Linux 上的 watch 命令定期运行程序 first appeared on Linux迷.

版权声明:
作者:Mr李
链接:https://www.techfm.club/p/82587.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>