添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
【摘要】 有时我想频繁(每隔几秒)重复一个命令(或 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

    华为开发者空间发布

    让每位开发者拥有一台云主机

    【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: [email protected]