Sådan kører du et program med jævne mellemrum ved hjælp af Watch-kommandoen på Linux

Nogle gange skal du gentagne gange køre en kommando eller et program for at overvåge forskellige aspekter af dit system, såsom igangværende processer, forbrug af diskplads eller brugerlogin. Linux-ur-kommandoen lader dig automatisere disse opgaver uden at skulle køre dem manuelt igen og igen.

Ved at bruge denne kommando kan du overvåge systemaktiviteter i realtid såsom brugerlogin, netværksstatus, hukommelse og CPU-brug, diskplads osv. Lad os se, hvordan du bruger watch-kommandoen i Linux.

Hvad er urkommandoen?

Watch Linux-kommandoen kører en bestemt kommando eller et program gentagne gange med jævne mellemrum og viser dets output i terminalen. Dette lader dig observere ændringerne i outputtet i realtid. Det opdaterer output ved hvert interval og overskriver kommandoens tidligere output. Som standard gentages kommandoen hvert andet sekund og fortsætter, indtil du manuelt stopper den med Ctrl + C.

Se kommandosyntaks

Syntaksen for urkommandoen er:

 watch options <command> 

Der er forskellige kommandolinjemuligheder tilgængelige til brug med urkommandoen. Hvis du kører ur-kommandoen uden nogen muligheder, vil den køre den angivne kommando efter hvert andet sekund. For eksempel vil følgende vise dig outputtet af ls-kommandoen:

 watch ls -l ~/ 

Outputtet viser dig ændringerne i mappelisten, hvis en fil oprettes, slettes eller ændres i størrelse, mens outputtet opdateres hvert andet sekund.

  Sådan spiller du GreedFall på Linux

Kør en kommando hvert X. sekund ved hjælp af ur

Du kan ændre opdateringsintervallet for urkommandoen. Det betyder, at du kan bede urkommandoen om at vente i x sekunder, før du gentager kommandoen. For at ændre opdateringsintervallet skal du bruge -n-indstillingen efterfulgt af tidsintervallet i sekunder.

 watch -n  

For at køre en kommando efter hvert 5. sekund, skal du køre:

 watch -n 5 <command> 

Fremhæv ændringer mellem opdateringer

Urkommandoen overskriver dets output ved hver opdatering. Ved at bruge -d-indstillingen kan du også fremhæve ændringerne mellem det forrige og det opdaterede output.

 watch -d 

Skjul overskrift i output fra urets kommando

Som standard viser urkommandoen en overskrift øverst på hvert output, der indeholder opdateringsintervallet, kommandonavnet og systemets aktuelle dato og klokkeslæt. Du kan fjerne headeren fra outputtet ved at bruge -t-indstillingen:

 watch -t <command> 

Afspil bip ved fejl

Når en Linux-proces er færdig med at køre, returnerer den en exit-kode. Ved konvention er værdien 0 ved succes og ikke-nul for at repræsentere en fejl. Urkommandoens -b-indstilling afspiller en biplyd, hvis kommandoen returnerer en udgang, der ikke er nul.

  Sådan installeres AppImages på Linux på den nemme måde

Lad os sige, at du vil overvåge sshd.service og få besked, når tjenesten stopper; du ville bruge:

 watch -b sudo systemctl status sshd.service 

Denne kommando vil give biplyde, når tjenesten stopper. Bippet stopper, når tjenesten genoptages. For at teste dette skal du åbne et andet terminalvindue og stoppe tjenesten. Dette vil give konstante bip, indtil du starter tjenesten igen. For at bruge denne funktion skal du dog have bip-pakken installeret på dit system.

Afslut urkommandoen ved outputændring

Du kan også bede urkommandoen om at stoppe med at køre og afslutte, når udgangen af ​​kommandoen ændres. Du kan gøre dette ved at bruge -g-indstillingen. Denne mulighed er meget nyttig i scenarier, hvor du venter på visse ændringer i outputtet.

Når outputtet ændres, stopper urkommandoen. Du kan kombinere denne brug med ekko-kommandoen for at vise en meddelelse på skærmen.

  Sådan aktiveres Snap Package Support på Linux Mint

Overvej for eksempel et scenarie, hvor du venter på, at en fil kommer til dit bibliotek. Følgende kommando vil overvåge mappen for den angivne fil. Så snart den ankommer, stopper ur-kommandoen med at køre, og meddelelsesfilen ankom vises på terminalen.

 watch -g "ls -l | grep filename" && echo "file arrived" 

Et andet nyttigt eksempel er en meddelelse, når en bestemt bruger logger ind på dit system:

 watch -g "who | grep username" && echo "username logged in" 

Denne kommando vil overvåge outputtet af who-kommandoen, som viser de brugere, der er logget på. Når brugeren logger på, stopper watch-kommandoen og viser en meddelelse på terminalen.

På samme måde kan du bede watch-kommandoen om at stoppe en tjeneste, når der foretages nogle ændringer i en fil. Husk, at når du bruger en kæde af kommandoer, skal du omslutte hele kommandoen i anførselstegn.

Se aktiviteter i dit Linux-system

Hvis du oplever at gøre den samme proces gentagne gange, kan du overveje at bruge ur-kommandoen til at automatisere den. Det sparer dig for ofte at skrive kommandoerne for at se, hvad der er ændret.

Du kan også bruge watch-kommandoen sammen med andre Linux-kommandoer til at overvåge systemressourcer og aktiviteter og spore ændringer i filer eller mapper.