watch met Pipes

  Algemeen

Het watch commando soms handig zijn om snel iets te monitoren of even iets bij te houden, bv wijzigingen in een directory. watch ververst je scherm automatisch met een default een refresh rate van 2 sec maar dat kan je eenvoudig aanpassen met de -n gevolgd door aantal sec. stel je wilt de vulgraad van je filesystemen even volgen omdat je een proces hebt gestart.
gebruik van watch gevolgd door het commando df -h

watch df -h
Every 2.0s: df -h                  defiant: Thu Apr 23 10:39:19 2018

Filesystem                         Size  Used Avail Use% Mounted on
udev                                16G     0   16G   0% /dev
tmpfs                              3.1G  2.7M  3.1G   1% /run
/dev/mapper/defiant--vg-rootlv      25G   22G  1.3G  95% /
tmpfs                               16G  132M   16G   1% /dev/shm
tmpfs                              5.0M  4.0K  5.0M   1% /run/lock
tmpfs                               16G     0   16G   0% /sys/fs/cgroup
/dev/loop0                          94M   94M     0 100% /snap/core/9066
/dev/loop1                          94M   94M     0 100% /snap/core/8935
/dev/loop2                          18M   18M     0 100% /snap/pdftk/9
/dev/loop3                          13M   13M     0 100% /snap/dmd/99
/dev/loop4                          13M   13M     0 100% /snap/dmd/102
/dev/mapper/defiant--vg-vardstlv    93M  6.0M   80M   7% /var/log/dstat
/dev/mapper/defiant--vg-homelv      99G   92G  1.9G  99% /home
/dev/mapper/defiant--vg-vagrantlv  9.8G  8.4G  887M  91% /vagrant
/dev/mapper/defiant--vg-libvirtlv   61G   48G  9.9G  83% /var/lib/libvirt
/dev/nvme0n1p1                     472M  173M  275M  39% /boot
tmpfs                              3.1G   12K  3.1G   1% /run/user/2000

dit is natuurlijk leuk maar het is misschien te veel informatie je wilt er bv alleen de file systemen op disk zien je kan dan bv grepen op de de vg naam in mijn voorbeeld defaint. als je dat in combinatie met watch wilt gebruiken gaat dat standaard niet goed. zet daarom je commando tussen ” ”

$ watch "df -h |grep defiant"
Every 2.0s: df -h |grep defiant defiant: Thu Apr 23 10:46:07 2018
/dev/mapper/defiant--vg-rootlv 25G 22G 1.3G 95% /
/dev/mapper/defiant--vg-vardstlv 93M 6.1M 80M 7% /var/log/dstat
/dev/mapper/defiant--vg-homelv 99G 92G 1.9G 99% /home
/dev/mapper/defiant--vg-vagrantlv 9.8G 8.4G 887M 91% /vagrant
/dev/mapper/defiant--vg-libvirtlv 61G 48G 9.9G 83% /var/lib/libvirt

Houd er rekenning mee dat je bij sommige commando’s waar je door heen piped je soms escape chars moet gebruiken. bv bij awk als je alleen maar kolom 1 5 en 6 geprint wilt hebben, je moet dan het $ symbool escape

$ watch "df -h |grep defiant|awk '{print \$1, \$5, \$6}'"
Every 2.0s: df -h |grep defiant|awk '{print $1… defiant: Thu Apr 23 10:51:55 2020
/dev/mapper/defiant--vg-rootlv 95% /
/dev/mapper/defiant--vg-vardstlv 8% /var/log/dstat
/dev/mapper/defiant--vg-homelv 99% /home
/dev/mapper/defiant--vg-vagrantlv 91% /vagrant
/dev/mapper/defiant--vg-libvirtlv 83% /var/lib/libvirt

Nog een paar handige optie bij watch.

  • -n X   update interval
  • -d       laat verschil met vorige scherm zijn
  • -t       laat de header weg je ziet dus niet de interval tijd en het commando