14 Ağustos 2018 Salı

Linux watch komutu kullanımı

Linux sunucu yönetiminde hem log dosyalarını hem de sistem kayıtlarını incelerken kullandığımız bir çok yardımcı komut var. Bunların başında dosyaların başını gösteren head komutu, sonunu gösteren tail komutu ve tamamını ekrana basan cat komutu geliyor. Bu komut satırı araçları sayesinde bir çok dosyayı rahatlıkla inceleyebiliyor ve takip edebiliyoruz. Hatta tail -f komutu ile web sunucusu, veritabanı gibi gibi sürekli işlem yapmakta olan daemonların log dosyalarına bağlanıp anlık olarak ekrana çıktı alabiliyoruz. Bu yazımızda ise aynı komutu sürekli olarak çalıştırıp çıktısını ekrandan takip etmek için kullanabileceğimiz watch komutunu inceleyeceğiz.


Watch komutunun kullanımı oldukça basit. watch "çalıştırmak istediğimiz komut" şeklinde sade bir çalışma prensibi var. Bunun dışında -n parametresi ile bu komutu kaç saniyede bir çalıştırmak istediğimiz belirtebiliyoruz.

Örneğin redis sunucumuza bağlı olan ipleri netstat ile çekip görmek istediğimizi düşünelim. redis sunucumuzun portu olan 6379 u "|"  yani linux pipe operatoru ile  grep'e vererek filtreledikten watch komutuna saniyede bir kez çalışacak şekilde gönderiyoruz. 

watch -n1 "netstat -tnp  | grep 6379"

Eğer redis sunucusuna bağlı kullanıcı sayısını görmek istersek grep'in çıktısını da wc -l komutuna pipe ile gönderip satır sayısını alarak o an bağlı olan kullanıcı sayımızı görebiliriz. Özellikle servisleri farklı bir sunucuya taşırken tüm bağlantılar düzgün şekilde yapılandırılmış mı, eski sunucuda kullanıcı kalmış mı gibi sorulara anlık cevap ararken bu komut oldukça yararlı olabiliyor.

watch -n1 "netstat -tnp  | grep 6379 | wc -l"

Farklı bir örnek olarak da bir linux processine ait tüm file descriptorlerin sayısını listeyen alttaki komuta bakabiliriz. Açık olan dosya ve bağlantıların tamamının ortak sayısını bu şekilde görebiliriz. Özellikle sorunlu servislerde fd sayısı sürekli olarak artabiliyor. Bunu anlık olarak takip etmek ve gerektiğinde bu servislere restart atmak watch komutu sayesinde kolaylaşıyor.
watch -n1 "ls /proc/2943/fd |wc -l"

Farklı senaryolar üzerinden watch ile sunucu servisi takibi yapabiliyoruz. Detaylı bilgi için kaynaklar:

Hiç yorum yok:

Yorum Gönder

hmm