每 N 秒重复一次 Linux 命令或 Shell 脚本

网友投稿 1329 2022-05-28

有时我想频繁(每隔几秒)重复一个命令(或 shell 脚本)。有没有更好的方法来每 n 秒执行一次 Linux 命令(而不是手动输入相同的命令)?

使用 watch 命令你可以每隔几秒执行一个命令并查看它的输出。这在监控内存使用情况、磁盘使用情况等时非常有用,

您可以使用 watch 命令执行任何 Linux 命令。Watch 命令将一直执行,直到您通过 CTRL+C 终止它或终止该进程。

示例 1:使用 watch ls 监视文件创建

当您期望由后台进程创建文件时,或者当您期望日志文件的大小不断增长时,您可能最终会多次执行 ls 命令。相反,您可以使用 watch 命令,它将每 2 秒执行一次 ls 命令,如下所示。

$ watch ls Every 2.0s: ls Thu Apr 15 16:11:58 2010 flash-plugin-10.0.45.2-release.i386.rpm install_flash_player_10_linux.deb

watch 命令输出的第一行包含以下头信息:

每 2.0 秒:时间间隔。即 ls 将每 2 秒执行一次。

ls :每 2 秒执行一次的 Linux 命令。

2010 年 4 月 15 日星期四 16:11:58:当前日期和时间。

其余行是 watch 正在执行的命令的输出。在此示例中,它显示 ls 命令的输出。

示例 2:显示已用和可用内存详细信息(突出显示差异)

-d 选项突出显示连续更新之间的差异。

每 N 秒重复一次 Linux 命令或 Shell 脚本

$ watch -d free -om Every 2.0s: free -om Thu Apr 15 16:11:59 2010 total used free shared buffers cached Mem: 992 878 114 0 135 379 Swap: 4095 8 4087

如果您的系统上的内存输出没有改变,请尝试使用 date 命令的 -d 选项来查看它是如何工作的。

$ watch -d date

注意:您是否知道可以突出显示顶部命令输出中的更改?

示例 3:显示可用磁盘空间(每 10 秒重复一次)

默认情况下 watch 命令使用 2 秒间隔,您可以使用 -n 选项更改它。以下示例每 10 秒执行一次 df -h 命令。

$ watch -n 10 df -h Every 10.0s: df -h Thu Apr 15 16:12:26 2010 Filesystem Size Used Avail Use% Mounted on /dev/sda7 30G 8.6G 20G 31% / tmpfs 497M 964K 496M 1% /dev/shm /dev/sda6 194M 22M 163M 12% /boot

示例 4:抑制输出中的监视标头

您可以使用选项 -t 抑制 watch 命令输出的第一行,如下所示。

$ watch -t ls flash-plugin-10.0.45.2-release.i386.rpm install_flash_player_10_linux.deb

Linux Shell

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:pgbench进行postgres的压力测试
下一篇:【愚公系列】2021年12月 攻防世界-简单题-CRYPTO-009(easychallenge)
相关文章