頻繁に Python を使用して、サーバーに ping が可能かどうか、プログラムが正常に動作しているかどうかを確認します (対応するポートが正常かどうかを確認します)
前のシェル スクリプトは次のように書かれていました:
コードをコピー
# サーバーに 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):
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)