izle komutu en küçük -n aralığı


24

Watch komutu için en küçük aralık nedir?

Kılavuz sayfası ve Google aramaları, en küçük aralık alt sınırının ne olduğunu göstermez. Deney yoluyla 1 saniyeden daha küçük olabileceğini öğrendim.

Test etmek için bu komutu bir güvenlik duvarında çalıştırdım:

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

Bir saniyeden daha hızlı bir şekilde net bir şekilde güncellenir, ancak gerçekten 100ms'lik güncellemeler yapıp yapmadığı belli değildir.

Yanıtlar:


22

Hangi platformdasın?

Linux'umda (Ubuntu 14.10) man sayfası şöyle diyor:

 -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.

Bunu sadece mikrosaniye ile zaman damgasını basan bir C-programı çağıran bir script ile test ettim ve işe yarıyor.


1
Platform CentOS 6.6'dır. Man sayfası şöyledir: "[-n <seconds>] Program varsayılan olarak her 2 saniyede bir çalıştırılır; farklı bir aralık belirtmek için -n veya --interval komutunu kullanın." En düşük aralığın ne olduğunu belirtmez. Açıklama için teşekkürler.
Kyle

11

Aslında sınırdasın. Adam sayfa yok (benim 2009 Linux sürümü üzerinde en az) minimal bir değer sağlar. İşte gidiyor:

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

Muhtemelen kullanarak kontrol edebilirsiniz dateyoluyla watch:

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

Son alandaki ilk basamağa bakarsanız (nanosaniye), hızlıca artırırsınız, yani her watchyineleme için ~ 100ms eklenir.


10

watchkomut, procps yardımcı programlarına dahil edilir .

-nSeçenek için en küçük değer saat kaynağında0.1 kodlanmış olmasıdır (bkz. Satır 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;
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.