LinuxからWindows上のDOSコマンドを実行する


LinuxのWebサーバー経由でWindows 2003サーバーのコマンドをRubyスクリプト起動する 方法としてSSH経由で実行することを考える。

まずはWindows 2003サーバーにCygwinをインストールしてその上でsshdを起動させる。
/etc/sshd_configはデフォルトのままにしておく。
sshdデーモンを以下のコマンドで起動しておく。

# cygrunsrv -S sshd  (停止するにはcygrunsrv -E sshd)

Linuxサーバー側のRubyスクリプトを実行する。
ソースコードはこんな感じ。

rubygemsをrequireしないとnet/sshが読み込めないというエラーが発生した。
またこのライブラリではsshの中でコマンド一発実行すると終了してしまうのでsession.loopという関数で複数コマンドを実行できるようにしている。
Windowsのバッチファイルを実行するためにはcmd .. callというコマンドで実行する必要があるようだ。
コマンドだけではcygwinからうまく実行できなかった。
バッチファイルで呼んでいるコマンドによるのかもしれない。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です