一份菜单

观看:每N秒重复Unix命令或Shell脚本

题: 有时我想经常(每隔几秒钟)重复一次命令(或shell脚本)。有没有更好的方法每n秒执行一次unix命令(而不是继续手动输入相同命令)?

回答: 使用watch命令,您可以执行命令并查看它’每隔几秒钟输出一次。这在监视内存使用情况,磁盘使用情况等时非常有用,

您可以使用watch命令执行任何Unix命令。监视命令将一直执行,直到您通过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秒执行一次的Unix命令。
  • 2010年4月15日星期四16:11:58:当前日期& time.

其余各行是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

如果内存输出没有’要在您的系统上进行更改,请尝试-d选项和date命令以查看其工作方式。

$ watch -d date

注意 :您知道吗 突出显示top命令输出中的更改?

示例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  上 
/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

如果您喜欢这篇文章,您可能还会喜欢..

  1. 50个Linux Sysadmin教程
  2. 50个最常用的Linux命令(包括示例)
  3. 排名前25位的最佳Linux性能监视和调试工具
  4. 妈妈,我找到了! 15个实用的Linux Find命令示例
  5. Linux 101 Hacks第二版电子书 Linux 101黑客手册

Bash 101 Hacks书 Sed和Awk 101黑客手册 Nagios Core 3书 Vim 101黑客手册

{ 12 评论 … 加一 }

  • 法哈德·赫达亚提·法德 2010年5月14日,上午6:09

    嗨,感谢您的指导,我正在寻找这样的东西,我正在使用while循环来做到这一点。
    […]Answer: Using 瓦塔赫 command you can execute […]
    “watach”我认为输入错了,请更改它。

  • cmcanulty 2010年5月14日,上午7:50

    我想使用此命令在我用来备份的外部硬盘驱动器中运行,因为它不断旋转并卸载。但每周只插入一次备份。我将如何编写这样的命令?它通常安装为sdb1和sdb2或usb0和usb1(它是2个分区)。谢谢,我觉得这个网站非常有趣,但对我来说有点高级。

  • 石墨立方 2010年5月14日,上午8:28

    “答:使用watach命令,您可以执行命令并每隔几秒钟查看一次命令的输出。”

    它应该是“答:使用监视命令,您可以…”?

  • 拉梅什·纳塔拉詹(Ramesh Natarajan) 2010年5月14日,上午8:57

    @ Farhad,@ 石墨立方,

    感谢您输入错误。一世’ve changed it.

  • ASV 2010年5月14日,上午11:55

    #正确时;做ls;睡2;完成

  • NetSpider 2010年5月15日,上午7:02

    对于FreeBSD是“gnu-watch” utility

  • 诺姆 2012年9月4日,上午1:34

    非常有帮助,谢谢!

  • 安尼尔 2013年9月17日,下午1:29

    有什么办法可以每1秒和1个小时执行一次free命令吗?

    我可以像下面那样做vmstat和mpstat,但是我不知道’不知道如何执行免费命令

    mpstat 1550
    vmstat 1550
    免费-bs 1(我不’t如何/在何处指定550限制)

  • 2013年11月5日,上午6:00

    能够’不能让他们中的任何一个工作,我真是个白痴。

  • 2014年9月4日,下午5:19

    如何将结果存储到文件中?

    观看“正常运行时间”-“…”结果

  • NetSpider 2014年9月9日,上午4:31

    观看“正常运行时间”> uptime.txt
    但是您应该手动中断该命令,因为它会无休止地运行。

  • NetSpider 2014年9月9日,上午4:32

    观看正常运行时间> uptime.txt

发表评论