先日、Linuxでログローテーションを実行するシェルスクリプトをブログに公開したところ、
FBにて大学時代の後輩から、
「それlogrotateで出来ません?」
とコメントを頂いたので、試してみました。
教えてもらったのは以下のURL
ここだけ読んでも、
「ログファイルが /var/log に配置されてる前提で説明がされてる…」
と思い、今回のケースでは使用可能か不安でした。
今回のケース、バッチ実行結果のログが /var/log への出力じゃないんですよね。
@IT:logrotateの設定ファイルで指定できる主なコマンド
上記ページにて、ログローテーションで使える諸々の設定が紹介されています。
テスト用に「/etc/logrotate.d/」配下に配置した「test」ファイルには、
以下の記述をしました。
/home/koba/test.log {
daily
missingok
notifempty
compress
}
で、一日待てばきっとローテーションされるのですが、
想定通り動いてくれるかどうか、さっさと確認がしたかったので、
以下のページに掲載の、手動実行の手順を拝借。
Linuxのlogrotateを手動実行させる | 俺的備忘録 〜なんかいろいろ〜
前回logrotateを実行した日付が記載されているので、
これを昨日の日付に変更。
その後、logrotateを実行するスクリプトをコマンドから実行。
結果としては、
・実行前のログファイルが書庫ファイルとして保存され、
・logrotate対象のログファイル自体は空になっている
という挙動を確認しました。
昨日試したように自分でシェルスクリプトを書くのも勉強になって良いですが、
機能として標準化されている手法があるのであれば、後々のために覚えておいて損はないですね。