WATCH

Houdt bestanden in de gaten

watch is een programma waarmee je bepaalde programma’s periodiek kunt uitvoeren. Dit kan handig zijn om bijv. een directory in de gaten te houden op veranderingen.

De syntaxis van watch is vrij simpel : $ watch [optie] commando.

Maar wat zijn de beschikbare opties ?

– d (–differences) : Dit laat de verschillen tussen de 2 laatste iteraties van het gegeven commando zien. Zo kun je snel zien of er iets veranderd is. Een mogelijke optie is bijv. $ watch -d ls ~/Downloads. (of -d=permanent dan blijven de veranderingen zichtbaar tot je watch afsluit, dit doe je met CTRL+C)

Figuur 1. $ watch -d ls ~/Downloads

Als Ik nu een bestand toevoeg zien we dit:

Figuur 2. $ watch -d ls ~/Downloads

De standaard interval van watch is 2.0 sec. maar dit is te weinig tijd om schermafbeeldingen te maken, dus gebruik ik de volgende optie:

-n (–interval) bepaalt de tijd in seconden tussen de iteraties van het commando. Dit kan ik bijv. gebruiken om de grootte van een bestand dat wordt aangemaakt te volgen. Dit kan handig zijn bij tshark/wireshark.

Ik start dus tshark op in een andere console en monitor dan de directory waar het PCAP bestand wordt weggeschreven: $ watch -n 30 ls -hal ~/tmp/

Figuur 3. $ watch -n 30 ls -hal ~/tmp/

$ watch -n 30 ls -hal ~/tmp/

En na enige tijd:

Figuur 4. $ watch -n 30 ls -hal ~/tmp/

De -p (–presise) zorgt ervoor dat de interval preciezer wordt gevolgd dan bij de “gewone” modus (milliseconden)

-t (–no-title) laat geen titelbalk zien:

Figuur 5. $ watch -t

-t (–no-title)

-b (–beep) laat een geluid horen als het commando met een “niet-nul 1 ” (non-zero) melding eindigt (een foutmelding dus), dit werkt in een console binnen de GUI enkel als je die irritante “Terminal Bell” niet hebt uitgeschakeld in de instellingen van het Profiel.

-e (–errexit) is dan een betere optie (naar mijn bescheiden mening). Dit laat bij een “niet-nul” melding een bericht zien en sluit het commando af, na het drukken op een knop. Bijv:

$ watch -e dmesg

Figuur 6. $ watch -g

-g (–chgexit) sluit het commando af als de uitvoer van het commando verandert.

Laat ik als voorbeeld cat gebruiken. In het volgende commando ga ik de inhoud van /etc/apt/sources.list weergeven, daarna ga ik in een andere terminal de woorden contrib en non-free verwijderen.

$ watch -g cat /etc/apt/sources.list

Figuur 7. $ watch -g cat /etc/apt/sources.list

Meer informatie kun je altijd terugvinden in de manpages of de infopages

1 Ieder Linux programma geeft bij het afsluiten een zogenaamde exit code door aan het systeem. Als deze code nul (0) is dan is het programma zonder fout afgesloten, maar iedere andere code betekend dat er een fout in opgetreden en het programma waarschijnlijk daarom is gestopt. (zoals een SegFault of Segmentation Fault).