Om du kommer på att du kör samma kommando om och om igen kan det finnas ett bättre sätt.
Ibland måste du upprepade gånger köra ett kommando eller ett program för att övervaka olika aspekter av ditt system, som pågående processer, diskutrymmesanvändning eller användarinloggningar. Linux-bevakningskommandot låter dig automatisera dessa uppgifter utan att behöva köra dem manuellt igen och igen.
Med det här kommandot kan du övervaka systemaktiviteter i realtid såsom användarinloggningar, nätverksstatus, minnes- och CPU-användning, diskutrymme, etc. Låt oss se hur du använder watch-kommandot i Linux.
Vad är bevakningskommandot?
Watch Linux-kommandot kör ett angivet kommando eller ett program upprepade gånger, med jämna mellanrum, och visar dess utdata i terminalen. Detta låter dig observera ändringarna i utdata i realtid. Den uppdaterar utgången vid varje intervall och skriver över kommandots tidigare utgång. Som standard upprepas kommandot varannan sekund och fortsätter tills du manuellt slutar använda det Ctrl + C.
Titta på Command Syntax
Syntaxen för bevakningskommandot är:
watch options
Det finns olika kommandoradsalternativ som är tillgängliga att använda med klockakommandot. Om du kör bevakningskommandot utan några alternativ kommer det att köra det angivna kommandot varannan sekund. Till exempel kommer följande att visa dig resultatet av kommandot ls:
watch ls -l ~/
Utdata kommer att visa dig ändringarna i kataloglistan om en fil skapas, tas bort eller ändras i storlek, samtidigt som utdata uppdateras varannan sekund.
Kör ett kommando var X: e sekund med hjälp av klockan
Du kan ändra uppdateringsintervallet för klockkommandot. Det betyder att du kan säga till klockkommandot att vänta i x sekunder innan du upprepar kommandot. För att ändra uppdateringsintervallet, använd -n alternativet följt av tidsintervallet i sekunder.
watch -n
Till exempel, för att köra ett kommando efter var 5:e sekund, kör:
watch -n 5
Markera ändringar mellan uppdateringar
Klockkommandot skriver över dess utdata vid varje uppdatering. Använda -d alternativet kan du också markera ändringarna mellan föregående och uppdaterade utdata.
watch -d
Som standard visar bevakningskommandot en rubrik överst på varje utgång som innehåller uppdateringsintervallet, kommandonamnet och systemets aktuella datum och tid. Du kan ta bort rubriken från utgången med hjälp av -t alternativ:
watch -t
Spela pip vid fel
När en Linux-process slutar köras, returnerar den en utgångskod. Enligt konventionen är värdet 0 vid framgång och icke-noll för att representera ett fel. Klockkommandot -b alternativet spelar ett pipljud om kommandot returnerar en utgång som inte är noll.
Låt oss säga att du vill övervaka sshd.service och få ett meddelande när tjänsten slutar; du skulle använda:
watch -b sudo systemctl status sshd.service
Detta kommando kommer att avge pipljud när tjänsten stoppas. Pipet upphör när tjänsten återupptas. För att testa detta, öppna ett annat terminalfönster och stoppa tjänsten. Detta kommer att avge konstanta pip tills du startar tjänsten igen. Men för att använda den här funktionen måste du ha pippaketet installerat på ditt system.
Avsluta klockkommandot vid utgångsändring
Du kan också tala om för klockkommandot att sluta köra och avsluta när kommandots utdata ändras. Du kan göra detta med hjälp av -g alternativ. Det här alternativet är mycket användbart i scenarier när du väntar på vissa ändringar i utdata.
När utgången ändras stoppas bevakningskommandot. Du kan kombinera denna användning med ekokommandot för att visa ett meddelande på skärmen.
Tänk till exempel på ett scenario där du väntar på att en fil ska komma till din katalog. Följande kommando kommer att övervaka katalogen för den angivna filen. Så fort det anländer slutar bevakningskommandot att köras och meddelandet fil anlände kommer att visas på terminalen.
watch -g "ls -l | grep filename" && echo "file arrived"
Ett annat användbart exempel är ett meddelande när en specifik användare loggar in på ditt system:
watch -g "who | grep username" && echo "username logged in"
Detta kommando kommer att övervaka utdata från who-kommandot som listar de användare som är inloggade. När användaren loggar in stoppas bevakningskommandot och visar ett meddelande på terminalen.
På samma sätt kan du säga till bevakningskommandot att stoppa en tjänst när vissa ändringar görs i en fil. Tänk på att när du använder en ledningskedja av kommandon, måste du omge hela kommandot inom citattecken.
Titta på aktiviteter i ditt Linux-system
Om du kommer på att du gör samma process upprepade gånger, överväg att använda klockakommandot för att automatisera det. Det sparar dig från att ofta skriva kommandona för att se vad som har förändrats.
Du kan också använda bevakningskommandot med andra Linux-kommandon för att övervaka systemresurser och aktiviteter och spåra ändringar i filer eller kataloger.