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コマンドでチェックし、起動しているかどうかを判定しています。各サーバごとに独立したスレッドが起動され、同時に複数のサーバの状態をチェックすることができます。