別サーバのシェルを CGI から実行する
IPC::Run モジュールでできるっぽい。あとは $command 部分をいじってあげれば完成。パスワードをいちいち聞かれてしまうのはSSHパスワードを環境変数に設定すれば ok なのかなーと思っているのですが、どうも情報が見当たらない。RSA公開鍵を設定すると、パスワード認証できなくなるんでしたっけ…いや、そんなことはない筈。でも鍵ファイルを持たせたくないなぁ
#!/usr/local/bin/perl use strict; use IPC::Run qw( run timeout ); my(@cmd, $in, $out, $err); my $remote = '192.168.1.254'; eval { ## test ## my $command = '/bin/ls'; @cmd = ('ssh', '-l', 'user', $remote, $command); run( \@cmd, \undef, \$out, \$err); print "out - $out\n"; print "error - $err\n"; };if($@){ print "error : $@"; }