Posted at

poderosaのマクロでログ監視

More than 5 years have passed since last update.

複数サーバのログ監視をするのにマクロを組んでみた。

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);
}