Contents

Hur man kör ett program periodiskt med Watch-kommandot på Linux

Ibland behöver du köra ett kommando eller ett program upprepade gånger för att övervaka olika aspekter av ditt system, t.ex. pågående processer, diskutrymme eller användarinloggningar. Med kommandot Linux watch kan du automatisera dessa uppgifter utan att behöva köra dem manuellt om och om igen.

Med det här kommandot kan du kontinuerligt observera olika systemhändelser, t.ex. användarinloggning, nätverksförhållanden, processor- och minnesanvändning, tillgänglig lagringskapacitet m.m. Utforska de steg som krävs för att använda kommandot “watch” i ett Linux-operativsystem för omfattande övervakningsfunktioner.

Vad är kommandot watch?

Kommandot “watch” i Linux gör att ett visst kommando eller program kan köras regelbundet och att utdata visas i terminalen. Detta gör att man kan övervaka eventuella ändringar av utdata i realtid eftersom den uppdateras kontinuerligt och ersätter den tidigare utdata med varje iteration. Som standard utförs kommandot varannan sekund om inget annat anges genom att trycka på

Syntax för kommandot watch

Syntaxen för kommandot watch är:

 watch options <command> 

Genom att använda kommandot “watch” får man en mängd olika alternativ för konfiguration via kommandoradsparametrar. När kommandot “watch” körs utan några specifikationer kommer den angivna operationen att utföras varannan sekund, som en illustration kommer den efterföljande displayen att visa resultaten från kommandot “ls”:

 watch ls -l ~/ 

Presentationsdisplayen visar ändringarna i kataloglistorna i händelse av att en fils dimensioner skapas, tas bort eller ändras, genom att uppdatera visualiseringen med ett intervall på varannan sekund.

/sv/images/watch-output-of-ls-command.jpg

Kör ett kommando var X:e sekund med watch

Du har möjlighet att ändra uppdateringscykeln för kommandot watch . Detta motsvarar att ange hur länge kommandot watch ska vara vilande innan det utförs på nytt. För att justera uppdateringsintervallet använder du alternativet -n tillsammans med tidsperioden i sekunder som parameter.

 watch -n

Om du vill köra ett kommando upprepade gånger var femte sekund kan du använda följande tillvägagångssätt:

 watch -n 5 <command> 

/sv/images/change-update-interval-of-watch-command.jpg

Markera ändringar mellan uppdateringar

Kommandot watch i skalskript ändrar sin visning vid varje körning.Genom att använda alternativet -d kan man också accentuera skillnaderna mellan den aktuella och föregående utmatningen.

 watch -d 

Dölj rubrik i utdata från kommandot watch

Standardinställningen för kommandot “watch” är att visa en rubrik i varje utdata som innehåller information om uppdateringsintervall, kommandonamn samt aktuellt datum och tid för systemet. Du kan använda alternativet “-t” för att utelämna denna rubrik från utdata.

 watch -t <command> 

Play Beeps on Error

När en Linux-process avslutas returneras vanligtvis en exitstatus, som ofta betraktas som ett mått på framgång eller misslyckande. Konventionell praxis säger att ett värde på noll betyder lyckad exekvering medan alla andra värden fungerar som en indikator på ett fel. I samband med watch-kommandots -b -alternativ används denna utgångsstatus för att utlösa en ljudsignal i form av ett pip när ett värde som inte är noll returneras, vilket varnar användare för potentiella problem i deras skriptkommandon.

En möjlig metod för att övervaka statusen för sshd.service med systemd och ta emot meddelanden i händelse av ett avbrott i tjänsten är att använda följande kommando:

 watch -b sudo systemctl status sshd.service 

För att implementera en notifieringsmekanism med hörbara varningar i form av pip genom paketet “beep” för tjänster som har upphört att fungera, kan man använda följande procedur. Genom att utföra detta kommando kommer en serie kontinuerliga pip att höras från högtalarna när den angivna tjänsten upphör att fungera. När tjänsten har återställts kommer det pipande ljudet att upphöra. Det är viktigt att notera att denna funktion är beroende av att det tidigare nämnda “beep”-paketet finns på användarens system.

Avsluta watch-kommandot vid utdataändring

Med flaggan -g kan man stoppa exekveringen av ett watch-kommando och avsluta dess funktion när man upptäcker någon ändring i den resulterande utdata, vilket gör det särskilt användbart i situationer där det är viktigt att övervaka ändringar i utdata.

Vid ändring av utdata skall exekveringen av kommandot watch upphöra. Denna operation kan effektivt kombineras med användandet av kommandot echo för presentation av visuellt innehåll på displayytan.

Antag att du väntar på att en viss fil ska visas i en av dina kataloger. I ett sådant fall kan du genom att utföra det angivna kommandot kontinuerligt övervaka katalogen för att se om den specifika filen finns där.När det upptäcks skall exekveringen av watch-kommandot upphöra och ett meddelande om att filen har anlänt skall visas på terminalens gränssnitt.

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

Ett annat illustrativt exempel är att få en varning när en viss person får tillgång till ditt nätverk:

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

Det aktuella kommandot skall övervaka den utdata som genereras av kommandot “who”, som räknar upp de personer som för närvarande är anslutna till systemet. När en användare loggar in ska funktionen för kommandot “watch” upphöra och ett meddelande ska visas i terminalgränssnittet.

På liknande sätt är det möjligt att instruera kommandot “watch” att stoppa exekveringen av en viss tjänst närhelst ändringar görs i en viss fil. När man använder en pipeline av sammankopplade kommandon är det dock viktigt att hela instruktionen står inom citationstecken.

Övervaka aktiviteter i ditt Linux-system

Att använda kommandot “watch” kan vara en praktisk lösning om du ofta utför identiska uppgifter i följd. Genom att använda detta kommando kan du eliminera behovet av att kontinuerligt ange kommandon för att upptäcka eventuella ändringar som har gjorts.

Man kan använda kommandot “watch” tillsammans med olika Linux-kommandon för att övervaka systemtillgångar och uppgifter, och övervaka ändringar i filer eller kataloger.