Als u merkt dat u steeds opnieuw dezelfde opdracht uitvoert, is er wellicht een betere manier.
Soms moet u herhaaldelijk een opdracht of een programma uitvoeren om verschillende aspecten van uw systeem te controleren, zoals lopende processen, schijfruimtegebruik of gebruikersaanmeldingen. Met de Linux watch-opdracht kun je deze taken automatiseren zonder dat je ze steeds opnieuw handmatig hoeft uit te voeren.
Met deze opdracht kunt u systeemactiviteiten in realtime volgen, zoals gebruikersaanmeldingen, netwerkstatus, geheugen- en CPU-gebruik, schijfruimte, enz. Laten we eens kijken hoe we de watch-opdracht in Linux kunnen gebruiken.
Wat is het wachtcommando?
De watch Linux-opdracht voert een gespecificeerde opdracht of een programma herhaaldelijk uit, met regelmatige tussenpozen, en geeft de uitvoer ervan weer in de terminal. Hierdoor kunt u de veranderingen in de uitvoer in realtime observeren. Het vernieuwt de uitvoer bij elk interval en overschrijft de vorige uitvoer van de opdracht. Standaard wordt de opdracht elke twee seconden herhaald en gaat door totdat u deze handmatig stopt
Ctrl+C.Bekijk de opdrachtsyntaxis
De syntaxis van het watch-commando is:
watch options
Er zijn verschillende opdrachtregelopties beschikbaar die u kunt gebruiken met de opdracht watch. Als u de watch-opdracht zonder opties uitvoert, wordt de opgegeven opdracht na elke twee seconden uitgevoerd. Het volgende toont u bijvoorbeeld de uitvoer van de ls-opdracht:
watch ls -l ~/
De uitvoer toont u de wijzigingen in de directorylijst als een bestand wordt gemaakt, verwijderd of van grootte verandert, terwijl de uitvoer elke twee seconden wordt vernieuwd.
Voer elke X seconden een opdracht uit met behulp van Watch
U kunt het update-interval van de watch-opdracht wijzigen. Dit betekent dat u het watch-commando kunt laten wachten x seconden voordat u het commando herhaalt. Om het update-interval te wijzigen, gebruikt u de -N optie gevolgd door het tijdsinterval in seconden.
watch -n
Als u bijvoorbeeld elke vijf seconden een opdracht wilt uitvoeren, voert u het volgende uit:
watch -n 5
Markeer wijzigingen tussen updates
Het watch-commando overschrijft de uitvoer bij elke vernieuwing. De... gebruiken -D optie kunt u ook de wijzigingen tussen de vorige en bijgewerkte uitvoer markeren.
watch -d
Standaard wordt bij de watch-opdracht bovenaan elke uitvoer een header weergegeven die het update-interval, de opdrachtnaam en de huidige datum en tijd van het systeem bevat. U kunt de header van de uitvoer verwijderen met behulp van de -T keuze:
watch -t
Speel piepjes af bij fout
Wanneer een Linux-proces klaar is met draaien, retourneert het een exitcode. Volgens afspraak is de waarde 0 bij succes en niet nul om een fout weer te geven. Het wachtcommando -B optie speelt een piepgeluid af als de opdracht een uitgang retourneert die niet nul is.
Stel dat u sshd.service wilt monitoren en een melding wilt krijgen wanneer de service stopt; je zou gebruiken:
watch -b sudo systemctl status sshd.service
Dit commando geeft pieptonen wanneer de service stopt. De pieptoon stopt zodra de service wordt hervat. Om dit te testen, opent u een ander terminalvenster en stopt u de service. Deze geeft constante pieptonen totdat u de service opnieuw start. Om deze functie te kunnen gebruiken, moet het pieperpakket echter op uw systeem zijn geïnstalleerd.
Verlaat het horloge-commando bij uitvoerwijziging
U kunt de watch-opdracht ook vertellen om te stoppen met draaien en af te sluiten wanneer de uitvoer van de opdracht verandert. Dit kunt u doen met behulp van de -G keuze. Deze optie is erg handig in scenario's waarin u wacht op bepaalde wijzigingen in de uitvoer.
Zodra de uitvoer verandert, stopt het horloge-commando. U kunt dit gebruik combineren met het echo-commando om een bericht op het scherm weer te geven.
Overweeg bijvoorbeeld een scenario waarin u wacht tot een bestand in uw directory arriveert. Met de volgende opdracht wordt de map voor het opgegeven bestand gecontroleerd. Zodra het binnenkomt, stopt het horloge-commando en de melding bestand aangekomen wordt op de terminal weergegeven.
watch -g "ls -l | grep filename" && echo "file arrived"
Een ander handig voorbeeld is een melding wanneer een specifieke gebruiker inlogt op uw systeem:
watch -g "who | grep username" && echo "username logged in"
Met deze opdracht wordt de uitvoer van het who-opdracht waarin de ingelogde gebruikers worden vermeld. Zodra de gebruiker zich aanmeldt, stopt het horloge-commando en wordt er een bericht op de terminal weergegeven.
Op dezelfde manier kunt u het watch-commando vertellen een service te stoppen wanneer er wijzigingen in een bestand worden aangebracht. Houd er rekening mee dat wanneer u een reeks opdrachten gebruikt, u de volledige opdracht tussen aanhalingstekens moet plaatsen.
Bekijk activiteiten op uw Linux-systeem
Als je merkt dat je hetzelfde proces herhaaldelijk uitvoert, overweeg dan om de watch-opdracht te gebruiken om het te automatiseren. Het bespaart u het herhaaldelijk typen van de opdrachten om te zien wat er is veranderd.
Je kunt de watch-opdracht ook samen met andere Linux-opdrachten gebruiken om systeembronnen en -activiteiten te controleren en wijzigingen in bestanden of mappen bij te houden.