C#でLinuxへ接続して、シェルを実行する
C#でLinuxへ接続してシェルを実行したかったので、簡単なサンプルで試してみた。
MySQLならドライバーが用意されており、それを使えばSQLを発行して実行結果を取得できるのはよく知っている。
同じように接続するためのドライバーのようなものが用意されているでしょうということで、ググってみたところ、「SharpSSH」というライブラリがあった。
今回はこれを使用してサンプルを作成した。
using Tamir.SharpSsh; using Tamir.SharpSsh.jsch; private string executeCommand(string serverHost, string userName, string pass, string command, int tcpPort) { SshExec ssh = new SshExec(serverHost, userName, pass); string result = null; try { ssh.Connect(tcpPort); result = ssh.RunCommand(command); } catch (Exception ex) { result = ex.Message; } finally { if(null != ssh){ ssh.Close(); } } return result; }
usingで2つの名前空間をインポートして、上記のように書くだけ。
例外処理などなど、細かなことをいうと、もっとしっかり書く必要はあるけど、サンプルとしては以上。