以前、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/

本リリース前の開発版なので、本リリース版より気持ち不安定なことがあるかも知れませんが、興味のある方は試してみては如何でしょうか!