ホームページ > バックエンド開発 > Python チュートリアル > Pythonはサーバーが正常かどうかを検出します

Pythonはサーバーが正常かどうかを検出します

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-16 08:45:15
オリジナル
1756 人が閲覧しました

頻繁に Python を使用して、サーバーに ping が可能かどうか、プログラムが正常に動作しているかどうかを確認します (対応するポートが正常かどうかを確認します)

前のシェル スクリプトは次のように書かれていました:

コードをコピーします コードは次のとおりです:

PINGRET= $( ping www.baidu.com -c 2 | grep "icmp_" ); if [ -z $PINGRET ] then echo "ping 失敗"; else echo "ping ok";または


コードをコピー
コードは次のとおりです:ping -c 2 www.baidu.com|grep "icmp_" && echo 'ping ok' || echo 'ping failed'

コード例:

コードをコピー

コードは次のとおりです:#!/usr/bin/python#coding=utf -8
# ファイル名: net_is_normal.py
インポート os
インポート ソケット
インポート サブプロセス


# ネットワークが正常かどうかを確認します。 server='www.baidu.com'

# サーバーに ping できるかどうかを確認します。 プログラムの実行中に、コマンドの実行情報が表示されます。標準出力で
def pingServer(server):
result=os.system('ping '+server+' -c 2')
if result:
print 'Server %s ping failed' % サーバー
else:
'サーバー %s ping ok' を出力します % サーバー
結果を出力します

#プログラム出力を /dev/null に配置します。そうでない場合、プログラムの実行中にコマンド実行情報が標準出力に表示されます。
def pingServerCall(server):

fnull = open(os.devnull 、'w')

result = subprocess.call('ping '+server+' -c 2'、shell = True、stdout = fnull、stderr = fnull)
if result:
print 'サーバー % s ping 失敗' %server
else:
print 'サーバー %s ping ok' %server
fnull.close()

#プログラムが正常かどうかを確認するために使用できます。 redis が正常かどうかの確認、つまり redis の 6379 ポートが正常かどうかの確認
#ssh が正常かどうかの検出、つまり ssh の 22 ポートが正常かどうかの確認
def check_aliveness(ip, port):
sk =ソケット.socket(socket.AF_INET,ソケット.SOCK_STREAM)
sk.settimeout(1)
try:
sk.connect((ip,port))
print 'サーバー %s %d サービスは OK!' %(ip, port)
return True
ただし例外:
print 'サーバー %s %d サービスは OK ではありません!' )
return False
finally:
sk.close()
return False

if __name__=='__main__':
pingServerCall(server)
pingServer(サーバー)
check_aliveness('192.168.230.128', 6379)


関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート