1: はじめに
Paramiko は Python 言語で書かれたモジュールで、SSH2 プロトコルに従い、暗号化と認証によるリモート サーバーへの接続をサポートします。
paramiko は Python のようなクロスプラットフォーム言語を使用しているため、Linux、Solaris、BSD、MacOS X、Windows など、Python でサポートされているすべてのプラットフォームをサポートできます。プラットフォームを別のプラットフォームに接続して一連の操作を実行する場合、paramiko は最適なツールの 1 つです。
一般的な例として、Windows クライアントを使用して Linux サーバーにリモート接続し、上記のログのステータスを確認する必要があるという要求があります。通常は次の方法を使用します。
1: Telnet を使用します
2: パテを使用する
3: WinSCP を使用する
4: XManager などを使用します...
サーバーからファイルをダウンロードする必要がある場合はどうすればよいですか?一般的に使用される方法は次のとおりです:
1: Linux に FTP をインストールし、設定します
2: Linux に Sambe をインストールし、設定します...
一般的なソリューションでは、リモート サーバーの必要な構成が必要であることがわかります。リモート サーバーが 1 つまたは 2 つしかない場合は、1 つずつ構成する必要があります。上記の操作を実行するにはコードを使用します。上記の方法はあまり便利ではありません。
paramiko を使用すると、以前の方法と比較して、対応するソフトウェア (Python と PyCrypto) をローカルにインストールするだけで済み、複数のサーバーを接続するための設定は必要ありません。特に接続操作が面倒です。
2: インストール
paramiko、Python、および PyCrypto と呼ばれる別のモジュールをインストールするには、2 つの前提条件があります。
通常、標準の Python モジュールをインストールするには、モジュールのルート ディレクトリで実行するだけです:
python setup.py install
上記の 2 つのコマンドで十分ですが、paramiko と PyCrypto も例外ではありません。唯一の問題は、PyCrypto をインストールするときに、GCC ライブラリがない場合にエラーが報告されることです。 PyCrypto と paramiko のインストールに失敗する原因となります。
以下では、paramiko のインストールプロセスを説明するために 32 ビット Windows XP を例にしています
1: Python をインストールします。バージョンは 2.2 以降です。インストール手順は省略し、インストール ディレクトリは c:python であるとします。
2: GCC がローカルにインストールされており、PATH 変数で見つかるかどうかを確認します。そうでない場合は、Windows バージョンの GCC、つまり MinGW を使用できます。ダウンロード アドレスは http://sourceforge.net/projects/mingw/ です。を実行し、ネットワーク インストール用の exe ファイルをダウンロードします。ディレクトリが C:mingw であると仮定し、C:mingwbin を PATH に追加し、c:pythonlibdistutils の下に distutils.cfg という名前の新しいファイルを作成します。
3: PyCrypto をダウンロードします。アドレスは
です。https://www.dlitz.net/software/pycrypto/
PyCrypto をインストールします:
解凍
dos の下の解凍されたディレクトリに入り、実行します
インストール テスト
python.exe を実行し、プロンプトで次のように入力します:
4: paramiko をダウンロードします。アドレスは http://www.lag.net/paramiko/
解凍
dos の下の解凍されたディレクトリに入り、実行します
3: paramiko を使用する
paramiko のインストールがまだ少し面倒だと感じている場合でも、paramiko の利便性を利用すると、導入する価値があると感じられるでしょう。
以下は、paramiko を使用して Linux サーバーに接続するための 2 つのコードです
方法 1:
方法 2:
実際的な例を以下に示します:
3.1 Windows は Linux 上で任意のコマンドを実行し、結果を出力します
Linux サーバーがポート 22 を開いている場合、Windows 側では、paramiko を使用してサーバーにリモート接続し、任意のコマンドを実行し、印刷またはその他の方法で結果を取得できます。
「コマンド」には、一般的に使用されるコマンドなど、Linux でサポートされている任意のコマンドを指定できます。
df: ディスク使用量の表示
uptime: システム実行時間情報の表示
cat: ファイルの内容の表示
mv/cp/mkdir/rmdir: ファイルまたはディレクトリの操作
/sbin/service/ xxxservice start/stop/restart: サービスを開始、停止、再起動します
netstat -ntl |grep 8080: ポート 8080 の使用状況を確認します
または nc -zv localhost: すべてのポートの使用状況を確認しますポート 状況
find/-name XXX: ファイルを検索
このように、Linux上でのほとんどの操作をWindows側で完結させることができ、この機能を拡張すれば複数のサーバーを同時に管理することも可能になります。
3.2 Widnows 側から Linux サーバーにファイルをダウンロードする
t = paramiko.Transport(("ホスト", "ポート"))
t.connect(username = "ユーザー名", パスワード = "パスワード")
sftp = paramiko.SFTPClient.from_transport( t )
remotepath='/var/log/system.log'
localpath='/tmp/system.log'
sftp.put(localpath,remotepath)
t.close()