wtorek, 22 marca 2022

PowerShell: Monitorowanie stanu usługi w konsoli i do pliku

W celu rozwiązywania problemu z jakąś usługą, może się przydać prosty monitoring polegający na sprawdzaniu jej statusu w podanym interwale czasowym.

Poniższy jednolinijkowiec wykonuje takie właśnie zadanie.

$serviceName = 'nazwa_usługi'; while ($TRUE) {start-sleep -Seconds 5; write-output "$(get-date -format "HH:mm:ss") : $((get-service -name $serviceName).Name) : $((get-service -name $serviceName).Status)"}

W powyższym kodzie proszę zwrócić uwagę na miejsca oznaczone na czerwono. Oczywiście 'nazwa_uslugi' to nic innego jak nazwa usługi, którą chcemy monitorować (nazwy usług można podejrzeć np. poleceniem Get-Service).

Z kolei cyfra 5 oznacza interwał czasowy w sekundach pomiędzy sprawdzeniami. 

Rezultat jego działania widać poniżej. 


Oczywiście monitorowanie na ekranie może się przydać we w miarę krótkim przedziale czasowym. Jeżeli zachodzi potrzeba monitoringu dłuższego okresu czasu, wystarczy rezultat powyższej komendy przekierować do pliku dodając kod, który zamieściłem poniżej na czerwono.

$serviceName = 'spooler'; while ($TRUE) {start-sleep -Seconds 5; write-output "$(get-date -format "HH:mm:ss") : $((get-service -name $serviceName).Name) : $((get-service -name $serviceName).Status)" | Tee-Object -file plik.txt -append}

Brak komentarzy:

Prześlij komentarz

Bardzo proszę o zachowanie netykiety.