-1

~/.ssh/configにリストされているリモート ホストに接続し、コマンドを (ps特に) 実行して、出力を抽出したいと考えています。

これらすべてを実行できる最も簡単なツールはどれですか?

4

3 に答える 3

2

おそらくこれを行う最も簡単な方法は、コマンド ラインで 'while' ループを使用することです。これは、必ずしも Python を使用する必要がないことを前提としています...

ホスト アドレスのリストを含むファイル (hostlist.txt) の場合:

#!/bin/bash

while read p; do 
    ssh user1@$p ps
done < hostlist.txt

本当に Python を使用したい場合は、同様のループをセットアップし、Python のsubprocessモジュールを使用して ssh を呼び出すことができます...

于 2012-11-23T16:12:52.050 に答える
2

Python ネイティブ ssh ライブラリであるParamikoをお勧めします。

使用方法の (非常に) 基本的な例 (ssh-key に基づく接続):

import paramiko

client = paramiko.SSHClient()

client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

client.connect('127.0.0.1')

stdin, stdout, stderr = client.exec_command('date')

for line in stdout:
    print line,
print

出力:

Fri Nov 23 17:36:09 EET 2012
于 2012-11-23T15:32:56.933 に答える
0

私は単にします

def remote_ps(host):
    import subprocess
    sp = subprocess.Popen(['ssh', host, 'ps'], stdout=subprocess.PIPE)
    out, err = sp.communicate()
    return sp.wait(), out
于 2012-11-23T16:00:17.870 に答える