|
カテゴリ:Python
はじめてのPythonネットワークプログラミングを読み始めた。中身確認しないで買っちゃったのだけど、クライアントサイドのネットワークを使ったプログラミングということで、内容は下のようなものだった。ちゃんと見てから買えってw
といったものだった。ネットワークプログラミングという題名から、もっと下位の層のネットワークとか、Twisted を使ったようなものとか想像していたが、中身をみたら違った。書籍の紹介ページにも「クライアント側のプログラミングが簡単に習得できる!」ってちゃんと書いてあったが見ないで脊髄反射で買ってしまった。 まあ、買ってしまった以上は活用しないともったいないので、見ていくことにする。第1章は、普通に「Python のおさらい」そのままだけど、断片的なので、初めて Python を触る人は別に一冊読んでからの方がいい。パラパラと流し読み。第2章の「FTPとTelnet」だが、やっぱり、インターネットごしにそういうことはあれなので、SSH でやりたいなと。そうすると、書籍にはないものを使って、Paramiko か、PySSH あたりか。PySSH は # Updates in CVS 2006-04-12 でメンテナンスが止まっているようなので、Paramiko を使うことにする。ちなみに Java にも移植されて Jaramiko というのがある。Paramiko は Pure Python なので、速度的にどうかなぁとか後で調べる。 ちなみに古いバージョンは、セキュリティホール情報<2008/03/05>
なので、1.6.4 はアウト。最新のバージョンは paramiko 1.7.3。easy_install paramiko でインストールできる。 使い方は、まじめにやると面倒なので、COMMAND LINE WARRIORS Zeth さんの SFTP in Python: Really Simple SSH や SFTP in Python: Paramiko を参考にする。このために、ssh.txt をダウンロードして ssh.py と名前を付け替えてから site-packages に放り込んでおく。そうすれば、下のように簡単に使える。なんて楽なんだ。
ただし、os.environ['LOGNAME'] を参照してログイン名を取得しているので、環境変数として指定しておくか、
のように明示的に指定する。private_key でプライベートキーのファイルを指定することもできる。 Connect で接続、put でファイルを送信、get でファイルを受信、execute でコマンドを実行。close で接続を閉じる。これだけ覚えれば使える。 ユーザー名は、username = os.environ['LOGNAME'] なので指定しなければ環境変数 LOGNAME の値が使われる。パスワードが指定されていないときは、'~/.ssh/id_rsa' か '~/.ssh/id_dsa' をプライベートキーファイルとして自動的に使う。どちらもなくて、パスワードもしていされていない場合はエラー。 複数のサーバーで同じコマンドを実行したければ Python ssh paramiko run command at every server のようなのもありだな(これは paramiko を生で使っていて ssh.py は使っていない例)。 paramiko/SSH/ how to get a remote host_key のあたりも参照。 とりあえず、ここまで。 お気に入りの記事を「いいね!」で応援しよう
Last updated
2008.06.20 03:50:09
コメント(0) | コメントを書く
[Python] カテゴリの最新記事
|