
Windows で RSHD を使う2010年11月14日 | |
はじめにWindows で RSHD を使う。 RSHD の入手Windows Implementation of RSHD 上記リンクに RSHD の説明とファイルへのリンクがあるが、最新版は こちら で手に入る。現時点での最新版は 1.8。 RSHD の起動インストール管理者権限で以下のコマンドを実行する。 > rshd -install "管理ツール" の "サービス" に RSH Demon が追加される。 rhosts の用意サービス開始前に rhosts ファイルを用意する必要がある。"C:\WINDOWS\rhosts" が読まれるようになっている (ただしバージョン 1.7 では "C:\WINDOWSrhosts" を読む。デリミタが抜けている)。 インストール時に "-r" オプションをつけていれば rhosts は無視される。 サービスの開始/停止"管理ツール" の "サービス" で RSH Demon の開始/停止が可能。以下のようにすればコマンドラインでも行える。 > net start rshd > net stop rshd アンインストール管理者権限で以下のコマンドを実行すると、"管理ツール" の "サービス" から RSH Demon が削除される。 > rshd -remove デバッグ版"-d" オプションつきで起動すると、デバッグ版でサービスが開始される。 > rshd -d 処理の詳しい情報を得ることができる。 RSHD サービスの利用RSH/RCP の用意Windows XP には標準で RSH, RCP が含まれている。Windows Vista や Windows 7 には標準では含まれない。Microsoft が提供する UNIX ベース アプリケーション用サブシステム (SUA) とやらを入れるとよいという話だが未確認。Edition によっては使えなかったりするようである。 RSH だけなら ここ で Windows Vista/Windows 7 向けに提供されている。 RSH の利用外のマシンから RSHD サービスが起動しているマシンにコマンドを実行させる場合は、次のようにする。 > rsh host -l username command ちなみに、ディレクトリ移動が必要なとき、ドライブ文字が変わる場合は、ドライブ切り替えが必要である。 > rsh host -l username "d: & cd d:\users & dir" rsh 実行時の場所は、rsh で cd コマンドを実行すればわかる。 注意: ユーザー名指定には意味がないのかもしれない。コマンドは管理者権限で実行されているように見える。だとしたらかなり危険。 RCP の利用外のマシンから RSHD サービスが起動しているマシンとファイルのやりとりを行う場合は、次のようにする。 > rcp local_file host.username:remote_path:remote_path > rcp host.username:remote_file local_path 利用上の注意上記 RSHD は、Windows から RSH をおよそ 1000 回以上実行するとつながらなくなる。また、Linux からの RSH でもおよそ 500 回以上実行すると動作がおかしくなる。ただし、上記の Windows Vista/Windows 7 用 RSH では問題は起こらない。 (注意: これ以降かなりアヤフヤな知識で書いています。) Windows のソケットで connect すると、そのポートは close されようがされまいが数分間使えなくなるようだ (netstat -na で "TIME_WAIT" と表示される)。上記 RSHD はそれに対処するために、ローカルの標準エラー出力ポート番号を 1022 から接続のたびに 1 ずつ減らしている。Windows 版 RSH の場合は 1000 回ちょっとの接続でポート番号が 0 になりつながらなくなる。Linux の場合、511 から動作がおかしくなる。 ということは、ローカルの標準エラー出力ポート番号が 511 まで行った時点で 1022 に戻せばよいように思うが、あまりに処理が連続的だとはじめのポートが TIME_WAIT を抜けるほどの時間が経たず、ポートが使用中であると判断されて接続に失敗してしまう。 これに対処するには、ポートが使用中であれば接続を切るのではなく、つながるようになるまで待つという対策を施せばよい。 ちなみに上の Windows Vista/Windows 7 用 RSH については、標準エラー出力ポートの情報をちゃんと送っていないのと、あとなんかいろいろあって (?) 問題ないようである。 RSHD 修正版上記の考え方で修正を施した RSHD。
RCP for Windowsフリーの Windows 版 RSH は上記のものがあるが、RCP はないようなので、上の RSH と RSHD をまぜこぜして作ってみた。 | |
| PENGUINITIS Yuu Kasuga | |