paramiko を使用してSSH接続を確立し、free -m コマンドをリモートマシン上で実行してメモリの使用状況を取得

2024年6月18日

 

他のマシンのメモリやCPUの利用率を取得するには、対象のマシンにSSHなどでリモート接続して、同様の方法で情報を取得する必要があります。

psutil 自体は、リモートマシンへの接続機能は提供しておらず、リモートのマシンで同様のコードを実行する必要があります。リモート接続にはSSHや他のプロトコルを使用し、リモートマシン上でPythonスクリプトを実行して psutil を使用して情報を取得します。

例えば、paramiko ライブラリを使用してSSH接続を行い、リモートマシン上でコマンドを実行する方法があります。以下は簡単な例です。

python
import paramiko

def get_remote_memory_usage(hostname, username, password):
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(hostname, username=username, password=password)

    # ここでリモートマシン上で実行するコマンドを指定
    command = "free -m"

    stdin, stdout, stderr = ssh.exec_command(command)
    result = stdout.read().decode("utf-8")

    print(f"Remote Memory Usage:n{result}")

    ssh.close()

if __name__ == "__main__":
    remote_hostname = "リモートマシンのIPアドレスまたはホスト名"
    remote_username = "リモートマシンのユーザー名"
    remote_password = "リモートマシンのパスワード"

    get_remote_memory_usage(remote_hostname, remote_username, remote_password)

この例では、paramiko を使用してSSH接続を確立し、free -m コマンドをリモートマシン上で実行してメモリの使用状況を取得しています。同様の方法でCPUの利用率を取得するコマンドを実行できます。ただし、SSH接続時のセキュリティに注意してください。

未分類

Posted by ぼっち