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

举报
Tiamo_T 发表于 2022/02/13 10:47:12 2022/02/13
【摘要】 有时我想频繁(每隔几秒)重复一个命令(或 shell 脚本)。有没有更好的方法来每 n 秒执行一次 Linux 命令(而不是手动输入相同的命令)? 使用 watch 命令你可以每隔几秒执行一个命令并查看它的输出。这在监控内存使用情况、磁盘使用情况等时非常有用, 您可以使用 watch 命令执行任何 Linux 命令。Watch 命令将一直执行,直到您通过 CTRL+C 终止它或终止该进程。

有时我想频繁(每隔几秒)重复一个命令(或 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 选项突出显示连续更新之间的差异。


$ 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
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。