Jeśli wielokrotnie uruchamiasz to samo polecenie, może istnieć lepszy sposób.
Czasami trzeba wielokrotnie uruchamiać polecenie lub program, aby monitorować różne aspekty systemu, takie jak trwające procesy, wykorzystanie miejsca na dysku lub logowanie użytkowników. Polecenie watch w systemie Linux pozwala zautomatyzować te zadania bez konieczności ręcznego uruchamiania ich wielokrotnie.
Za pomocą tego polecenia można monitorować w czasie rzeczywistym działania systemowe, takie jak logowania użytkowników, stan sieci, wykorzystanie pamięci i procesora, miejsce na dysku itp. Zobaczmy, jak używać polecenia watch w systemie Linux.
Co to jest polecenie zegarka?
Polecenie watch Linux wielokrotnie uruchamia określone polecenie lub program w regularnych odstępach czasu i wyświetla jego wynik w terminalu. Dzięki temu możesz obserwować zmiany na wyjściu w czasie rzeczywistym. Odświeża dane wyjściowe w każdym odstępie czasu, zastępując poprzednie dane wyjściowe polecenia. Domyślnie polecenie jest powtarzane co dwie sekundy i trwa do momentu ręcznego zatrzymania go Ctrl + C.
Obejrzyj Składnia poleceń
Składnia polecenia watch jest następująca:
watch options
W przypadku polecenia watch dostępne są różne opcje wiersza poleceń. Jeśli uruchomisz polecenie watch bez żadnych opcji, określone polecenie będzie uruchamiane co dwie sekundy. Na przykład poniższy wynik pokaże wynik polecenia ls:
watch ls -l ~/
Dane wyjściowe pokażą zmiany na liście katalogów, jeśli plik zostanie utworzony, usunięty lub zmieni się jego rozmiar, jednocześnie odświeżając dane wyjściowe co dwie sekundy.
Uruchamiaj polecenie co X sekund za pomocą zegarka
Możesz zmienić interwał aktualizacji polecenia watch. Oznacza to, że możesz nakazać poleceniu watch, aby odczekało x sekund przed powtórzeniem polecenia. Aby zmienić interwał aktualizacji, użyj opcji -N opcję, po której następuje odstęp czasu w sekundach.
watch -n
Na przykład, aby uruchomić polecenie co 5 sekund, uruchom:
watch -n 5
Podświetl zmiany pomiędzy aktualizacjami
Polecenie watch nadpisuje swoje dane wyjściowe przy każdym odświeżeniu. Używając -D opcję, możesz także podświetlić zmiany pomiędzy poprzednim i zaktualizowanym wyjściem.
watch -d
Domyślnie polecenie watch wyświetla na górze każdego wyniku nagłówek zawierający interwał aktualizacji, nazwę polecenia oraz bieżącą datę i godzinę systemu. Możesz usunąć nagłówek z wyjścia za pomocą -T opcja:
watch -t
Odtwórz sygnały dźwiękowe w przypadku błędu
Kiedy proces Linuksa zakończy działanie, zwraca kod wyjścia. Zgodnie z konwencją, wartość wynosi 0 w przypadku powodzenia i różna od zera w przypadku błędu. Polecenie zegarka -B opcja odtwarza sygnał dźwiękowy, jeśli polecenie zwróci niezerowe wyjście.
Załóżmy, że chcesz monitorować sshd.service i otrzymywać powiadomienia, gdy usługa się zatrzyma; użyłbyś:
watch -b sudo systemctl status sshd.service
To polecenie wyda sygnał dźwiękowy po zatrzymaniu usługi. Sygnał dźwiękowy ustanie, gdy usługa zostanie wznowiona. Aby to przetestować, otwórz kolejne okno terminala i zatrzymaj usługę. Będzie to powodować ciągłe sygnały dźwiękowe do momentu ponownego uruchomienia usługi. Aby jednak móc korzystać z tej funkcji, musisz mieć zainstalowany w swoim systemie pakiet beep.
Wyjdź z polecenia watch po zmianie wyjścia
Możesz także nakazać poleceniu watch, aby przestało działać i zakończyło działanie, gdy zmienią się dane wyjściowe polecenia. Można to zrobić za pomocą -G opcja. Ta opcja jest bardzo przydatna w scenariuszach, w których oczekujesz na pewne zmiany w wynikach.
Po zmianie sygnału wyjściowego polecenie watch zostanie zatrzymane. Możesz połączyć to użycie z poleceniem echo, aby wyświetlić komunikat na ekranie.
Rozważmy na przykład scenariusz, w którym czekasz na przybycie pliku do katalogu. Następujące polecenie będzie monitorować katalog dla określonego pliku. Gdy tylko nadejdzie, polecenie watch przestanie działać, a komunikat zostanie wyświetlony plik dotarł pojawi się na terminalu.
watch -g "ls -l | grep filename" && echo "file arrived"
Innym przydatnym przykładem jest powiadomienie, gdy konkretny użytkownik loguje się do Twojego systemu:
watch -g "who | grep username" && echo "username logged in"
To polecenie będzie monitorować dane wyjściowe pliku who, które wyświetla listę zalogowanych użytkowników. Gdy użytkownik się zaloguje, polecenie watch zatrzyma się i wyświetli komunikat na terminalu.
Podobnie możesz nakazać poleceniu watch zatrzymanie usługi, gdy w pliku zostaną wprowadzone pewne zmiany. Pamiętaj, że używając łańcucha poleceń potokowego, będziesz musiał ująć całe polecenie w cudzysłów.
Obejrzyj działania w swoim systemie Linux
Jeśli często powtarzasz ten sam proces, rozważ użycie polecenia watch, aby go zautomatyzować. Oszczędza to konieczności częstego wpisywania poleceń w celu sprawdzenia, co się zmieniło.
Możesz także użyć polecenia watch z innymi poleceniami systemu Linux, aby monitorować zasoby i działania systemu oraz śledzić zmiany w plikach lub katalogach.