以前、TeraTerm(テラターム)で取得しているログの、ローテーションについて質問を受けた事があります。
サーバ等に接続して取得しているログを一定間隔(日付等)でローテーションさせたい。接続をやり直すのでは無く、起動(接続)したまま人が操作することなくログを分割して保存したい。
その時は、苦肉の策でしたが「while endwhile」のループ処理と「pause」を併用して、何とか希望通りの動作を行なう事ができました。
⇒ テラタームの自動ログローテーションについて考える!
そんなやり取りを「Tera Term開発プロジェクト」のゆたかさんが観てくれていて、次期バージョン(4.78)からログローテーションコマンド「logrotate」が追加される事になりました。(感謝!)
使い方はいたって簡単。
「logopen」した後に、「logrotate」で設定を追加するだけです。
それでは、設定パラメータを見ていきましょう!
「logrotate」には3つのパラメータが存在します。
①ログのサイズでローテーションを行なう<size>パラメータ
サイズは、バイト・キロバイト・メガバイト単位で設定可能です。
設定例)
logopen ‘teraterm_sample.log’ 0 0
logrotate ‘size’ ’32K’ ←32Kバイト毎にログを分割する場合
(途中いろんな処理)
logclose
*注意
<size>パラメータに設定するサイズの指定では、K・Mを大文字で
設定してください。小文字の場合エラーとなりますので要注意です!
実際に使用してみると、ログファイルの後ろに.(ドット)数字が追加され
追加された数字の若番の方が新しい(最近の)ログになります。
②ログファイルの世代数の設定を行なう<rotate>パラメータ
ログファイルの世代数を設定する事が可能となっています。
設定例)
logopen ‘teraterm_sample.log’ 0 0
logrotate ‘size’ ‘1M’
logrotate ‘rotate’ 5 ←5世代ログを保存しておく場合
(途中いろんな処理)
logclose
実際に使用してみると、ログファイルの後ろに.(ドット)数字が追加され
追加された数字の若番の方が新しい(直近の)ログになります。
③ログローテーションを停止する<halt>パラメータ
単純にログローテーションの設定を停止します。
使用例)
logopen ‘teraterm_sample.log’ 0 0
logrotate ‘size’ ‘1M’
logrotate ‘rotate’ 5
(途中いろんな処理)
logrotate ‘halt’
(何かの処理)
logclose
欲を言うと
ちょっと欲を言うと「その他の設定」-「ログ」タブの設定からも
ログローテーションの設定が可能となればさらに便利になりますね!
まあ設定ダイアログからの設定で出来るようにする案も検討されている
みたいなので、後継バージョンでの実装を期待して待ちましょう。
いつも新しい便利な機能を追加してくれる
Tera Term開発プロジェクトメンバーに感謝です!
現在、開発版のスナップショットでこの機能を試すことが出来ます。
http://ttssh2.sourceforge.jp/snapshot/
本リリース前の開発版なので、本リリース版より気持ち不安定なことがあるかも知れませんが、興味のある方は試してみては如何でしょうか!
ご紹介いただきありがとうございます。
ログローテートは設定ダイアログからも行えるようにします。最終的には下記アーカイブになるような実装で、問題なければ次のリリース(5E)でサポートされます。
http://ttssh2.sourceforge.jp/snapshot/snapshot-20130506.zip
ゆたかさん。
ご連絡ありがとうございます。
内容確認しました。全然OKですね。
次期リリース楽しみにしています。