İşte sistemlerimi izlemek için kullandığım bazı programlar. Bunların herhangi bir varyasyonu, aşağıda açıklandığı gibi PiGPIO aracılığıyla sonuçlara etki eden bir program için temel olarak kullanılabilir.
Python'da fping
gecikmeleri izlemek ve sistemlerin çalışıp çalışmadığını görmek için.
sudo apt-get updatesudo apt-get install fping
alt işlemden içe aktar Popen, PIPE ... cmd = 'fping -C 1 -q www.myaddress.com'p = Popen (cmd, stdout = PIPE, stderr = PIPE, shell = True) stdout, stderr = p. communication ()
ÇIKTININ STERR İÇİNDE OLDUĞUNU VE BUNUN GİBİ GÖRÜNÜMÜNÜ NOT EDİN:
50.87.249.67: 6.30 olumlu yanıt
veya
50.87.249.67: - yanıtsız
VEYA
Bu alternatif cmd
komut dizesini aynı kodda kullanabilirsiniz:
alt işlem içe aktarma Popen, PIPE .. .cmd = 'fping www.myaddress.com'p = Popen (cmd, stdout = PIPE, stderr = PIPE, shell = True) stdout, stderr = p.communicate ()
ÇIKTININ STDERR İÇİNDE OLDUĞUNU VE BUNA BENZER OLDUĞUNU DİKKAT EDİN:
burada sonuç ya
www.myaddress.com yaşıyor
veya
www.myaddress.com: Ad veya hizmet bilinmiyor
--------------------------------------------- -
O halde harici cihazları kontrol etmek için her zaman piGPIO
piGPIO Kitaplık Arayüzü
piGPIO Kitaplık Örnekleri
Ping gecikmesi izleyicisi için benzer bir yöntem kullanıyorum:
#! / usr / bin / pythonimport os alt işlem içe aktarma Popen, PIPE veri saatinden içe aktarma datetimeos.system ('clear') os.chdir ("/ home / pi / pymon" tab = "\ t"
while True:
tt = datetime.now () ts = "" ts = str (getattr (tt, 'saat')) + ":" if getattr (tt, 'dakika') <10: ts = ts + '0'ss = ts + str (getattr (tt,' dakika ')) + ":"
getattr (tt, 'saniye') <10: ts = ts + '0'ts = ts + str (getattr (tt,' saniye ')) td = datetime.today () ds = "" ds = str (td. yıl) eğer td.month<10: ds = ds + "0" ds = ds + str (td.month) eğer td.day<10: ds = ds + "0" ds = ds + str (tg.day) datestr = str ( datetime.now (). date ()) datestr = datestr [: 10] timestr = str (datetime.now (). time ()) timestr = timestr [: 8] cmd = 'fping -C 1 -q www.SDsolarBlog .com'p = Popen (cmd, stdout = BORU, stderr = BORU, kabuk = Doğru) stdout, stderr = p.communicate () anahat = datestr + tab + timestr + tab + stderrf = open ("/ home / pi / pymon / today.dat "," a ") f.write (anahat) f.close () os.system (" tail -n 1 today.dat ") printtime.sleep (60.0)
şuna benzeyen bir veri dosyası oluşturur:
2018-04-04 00:17:52 50.87.249.67: 6.562018-04-04 00:18:52 50.87 .249.67: -2018-04-04 00:19:52 50.87.249.67: 7.412018-04-04 00:20:52 50.87.249.67: 10.99
Satır - cod e>, 3 saniyede yanıtın olmadığı bir satırdır.
Bu çıktıyı bir gnuplot programıyla birlikte her şeyi planlamak için kullanıyorum.
başlığı ayarla "Ping Zamanları" xlabel "Zaman" ayarla ylabel "Ping Zamanları" ayarla yrange [0: *] gridset zaman damgasını ayarla mouseunset logset anahtarı üst sol ayar xveri zaman seti zaman çizelgesi '% H:% M:% S'set xtics biçimi '% H:% M'set veri dosyası eksik "-" set y2ticsset terminal x11set stili dolgu katı 1.0plot 50 lw 1 lc rgb "siyah" notitle, \ 100 lw 1 lc rgb "gri" notitle , \ "today.dat" 2: 5 kullanarak lc rgb "red" t "Delay" pause 11rokunmak
satırları ile 2: 5 atlayın ve canlı bir olay örgüsü elde etmek için:
Bu, farklı bir komut için kullandığım koda benzer:
Maksimum / minimum çalışma sıcaklığı nedir ?