监视命令最小-n间隔


24

watch命令的最小间隔是多少?

手册页和Google搜索未指明最小间隔下限是多少。我通过实验发现它可以小于1秒。

为了进行测试,我在防火墙上运行了以下命令:

watch -n 0.1 cat /sys/class/net/eth1/statistics/rx_bytes

显然,它的更新速度快于一秒,但尚不清楚它是否确实在进行100ms更新。

Answers:


22

您在什么平台上?

在我的Linux(Ubuntu 14.10)上,手册页显示

 -n, --interval seconds
          Specify  update  interval. The  command will not allow quicker
          than 0.1 second interval, in which the smaller values  are  con‐
          verted.

我刚刚使用调用C程序的脚本对其进行了测试,该脚本以毫秒为单位打印时间戳,并且可以正常工作。


1
平台是CentOS 6.6。手册页指出:“ [-n <seconds>]默认情况下,程序每2秒运行一次;使用-n或--interval指定不同的间隔。” 它没有指定最小间隔是多少。感谢您的澄清。
凯尔(Kyle)2015年

11

实际上,您已达到极限。手册页的确提供了最小值(至少在我的2009 Linux版本上)。它去了:

-n, --interval seconds
Specify update interval. The command will not allow quicker 
than 0.1 second interval, in which the smaller values are converted.

您可能可以通过使用以下命令date进行检查watch

$ watch -n0.1 date +'%H:%M:%S:%N'

如果您查看最后一个字段(纳秒)中的第一个数字,您会看到它迅速增加,这意味着对于每次watch迭代,都会添加〜100ms。


10

watch命令包含在procps实用程序中。

-noption 的最小值是0.1,它在监视源中进行了硬编码(请参见第171-172行)

case 'n':
    {
        char *str;
        interval = strtod(optarg, &str);
        if (!*optarg || *str)
            do_usage();
        if(interval < 0.1)
            interval = 0.1;
        if(interval > ~0u/1000000)
            interval = ~0u/1000000;
    }
    break;
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.