2008-12-12 74 views
1

從python監控少數服務器的HTTP/FTP/IMAP/POP3/SMTP服務的最佳方式是什麼? 使用套接字並嘗試連接到服務端口http-80,ftp-21等...如果連接成功,則假定服務正常或使用python庫連接到指定的服務並處理異常/返回代碼/等...使用python監控少數服務器上的服務的最佳方法

例如,對於FTP是它更好地

import socket 
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
try: 
    s.connect(("ftp.domain.tld", 21)) 
    print "ok" 
except: 
    print "failed" 
s.close() 

from ftplib import FTP 

try: 
    ftp = FTP('ftp.domain.tld') 
    print "FTP service OK" 
    ftp.close() 
except: 
    print "FTP err" 

同樣適用於其他地區,插座VS urllib2的,imaplib,等... 如果我走了lib方式如何測試smtp?

回答

2

更新1:

其實,在你的代碼中有(在FTP)兩個選項之間沒有任何區別。第二個選項應該是代碼可讀性的首選。但方式不登錄到FTP服務器,也許讀一些文件?

更新0:

在監控,檢測完整的堆棧是更好的。因爲否則,您可能會錯過在套接字級別無法顯示的問題。 smtp可以用smtplib進行測試。最好的方式實際上是用它發送郵件。然後用imaplib從目標中讀取它。或者,您可以使用smtplib與smtp服務器交談。做完整的事情要好得多。但是應該考慮開發和配置資源以對付缺失問題的影響。

+0

這只是一個快速代碼,能夠解釋我在想什麼,真正的代碼將以正確的方式處理異常。也爲HTTP與urllib2我也可以得到響應代碼404,403等。 謝謝,我會去使用庫 – daniels 2008-12-12 20:46:12

相關問題