- 締切済み
teraterm文字列の選択
お世話になっております。 現在、teratermのマクロを用いてサーバログの監視を行おうとしているのですが。 ログを閲覧するコマンドを送信して、ログがドバーっと出てくるのですが、 特定の行の、特定の文字列を指定するという事はteraterm上で可能なのでしょうか? また、その指定した文字列を用いて比較や条件分岐はできるのでしょうか? 現状、ドバーっと出てきたログをテキストファイルに吐き出して、 MSDOSのマクロで特定の文字列を抽出して云々という運用をしております。 teratermのみで実現できれば運用もしやすく、第三者にも分かりやすいので、 できればそうしたいと考えております。 ご教示のほど、よろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- pakuti
- ベストアンサー率50% (317/631)
出来ます が 1から説明するのは、厳しいです。 http://ttssh2.sourceforge.jp/manual/ja/macro/command/index.html waitln waitrecv で、該当文字列が表示されるまで待つ と言う事は出来ます。 表示された場合に。。。と、言う事で対応は可能でしょう しかし、そんな事をする位ならば サーバー上で、ログ監視をする方が楽です。 前回確認時からの更新分のみを監視する方法もあるので その方が楽なのでは? 単純にログから文字列を抽出すると、ログがロテートされるまで チャックの間隔でアクションが発生してしまいます。
- kmee
- ベストアンサー率55% (1857/3366)
詳しい仕様がわからないので、断言はできませんが。 正規表現でマッチング→条件分岐 を使えばできるのではないでしょうか 別解1:「ログを閲覧するコマンド」自体を変える。 サーバーがLinuxとかなら ログ閲覧コマンド | grep 検出条件 みたいにして特定の条件を満す行だけ出力させることもできます。 シェルスクリプトにして適切な場所に置けば、1命令で実行できます。 より複雑なことをするなら、awk,perl,ruby等で処理することもできます。 別解2:Windows側で、一連の動作をするプログラムを用意する。 Perl,Ruby,Python等(+必要なモジュール)を使えば、サーバーの接続→ログ閲覧コマンド実行→結果を取得→文字列処理、というプログラムが比較的簡単に作れます。 teratermのマクロでは不十分という場合は、こちらの方法があります。