複数サーバのログ監視をするのにマクロを組んでみた。
Poderosaのツール>マクロからファイルを実行
1.serverListに接続するサーバ一覧を定義
2.waitで$を待ってから
3.sendlnでtailコマンドを実行
log.js
import Poderosa;
import Poderosa.Macro;
import Poderosa.ConnectionParam;
import Poderosa.Terminal;
import Poderosa.View;
import System.Drawing;
import System.Threading;
// 接続先サーバ
var serverList = [
{ hostname : "タブに表示する名前", host : "接続先IP", port : 接続先ポート, account : "接続ユーザ", password : "パスワード" }
]
for(var i = 0; i < serverList.length; i++){
var server = serverList[i];
connect(server.hostname, server.host, server.port, server.account, server.password);
}
/**
* サーバへ接続
* @param hostname タブに表示する名前
* @param host 接続先IP
* @param port ポート
* @param account アカウント
* @param password パスワード
*/
function connect(hostname, host, port, account, password){
var param = new SSHTerminalParam(ConnectionMethod.SSH2, host, account, password);
param.Caption = hostname;
param.Port = port;
param.Encoding = EncodingType.UTF8;
var env = new Environment();
var connection = env.Connections.Open(param);
wait(connection, "$");
sendln(connection, "tail -f /usr/local/tomcat/logs/catalina.out");
}
/**
* 指定の文字列を待つ
* @param connection 接続先
* @param command 待機する文字列
*/
function wait(connection, command) {
Thread.Sleep(10);
var res = connection.ReceiveData();
while(res.indexOf(command) == -1) {
Thread.Sleep(10);
res += connection.ReceiveData();
}
}
/**
* コマンドを送信する
* @param connection 接続先
* @param command 送信するコマンド
*/
function sendln(connection, command) {
connection.TransmitLn(command);
}