【Python】ping試験でサーバーの死活監視

Pythonでpingコマンドを実行し、サーバーの死活監視を行う方法についてソースコード付きでまとめました。

Pythonでping試験する方法

Pythonでping試験を使う場合、標準モジュール「subprocess」を使ってOSのpingコマンドを呼び出す方法が一般的です。
ただし、これだと外部環境に依存するためping試験ができる外部モジュールを使う手段もあります。

ping試験(subprocess編)

標準モジュール「subprocess」を使ってOSのpingコマンドを呼び出します。

サンプルコード

サンプルプログラムのソースコードです。

# -*- coding: utf-8 -*-
import subprocess

class Ping(object):
    def __init__(self, hosts):
        for host in hosts:
            # pingコマンド
            ping = subprocess.Popen(["ping", "-c", "1", host],
                stdout=subprocess.PIPE,
                stderr=subprocess.PIPE
            )

            # ping試験
            out, error = ping.communicate()

            # 接続できなかったら
            if error:
                print('[NG]: ' +  host + ', Msg->\'' + error.rstrip() + '\'')

            # 接続できたら
            else:
                print('[OK]: ' +  host)

def main():
    # ping試験するホスト
    hosts = ['www.google.com', 'algorithm.joho.info',]

    # ping試験
    Ping(hosts)

if __name__ == '__main__':
    main()
関連記事
1 Python入門 基本文法
関連記事