KnowHow

技術的なメモを中心にまとめます。
検索にて調べることができます。

pythonのThreadを使って多数のLinuxサーバが起動していることをチェックしたいです。

登録日 :2024/04/13 05:16
カテゴリ :Python基礎

Linuxサーバの起動状態をチェックするためにPythonのThreadを使用する場合、各サーバに対して独立したスレッドを作成し、それぞれのスレッドでサーバの起動状態をチェックする方法があります。以下はその例です:

import threading
import subprocess

def check_server(server):
    """Check if a server is up by pinging it."""
    result = subprocess.run(["ping", "-c", "1", server], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    if result.returncode == 0:
        print(f"Server {server} is up.")
    else:
        print(f"Server {server} is down.")

# 監視するサーバのリスト
servers = ["server1.example.com", "server2.example.com", "server3.example.com"]

# スレッドを起動して各サーバの状態をチェック
threads = []
for server in servers:
    t = threading.Thread(target=check_server, args=(server,))
    threads.append(t)
    t.start()

# 全てのスレッドが終了するまで待機
for t in threads:
    t.join()

この例では、check_server関数で各サーバをpingコマンドでチェックし、起動しているかどうかを判定しています。各サーバごとに独立したスレッドが起動され、同時に複数のサーバの状態をチェックすることができます。