less than 1 minute read

Launch Controlなどで定期的に何かしらのジョブを実行するような場合、ログファイルを残しておきたい。しかし、自動で実行されるものなので放っておくとファイルサイズが肥大化してしまう。 そういうときにはログローテーションと呼ばれる仕組みを使って、ファイルサイズが大きくなったら別の場所にアーカイブする・古いアーカイブは削除する、というようなケアを定期的に行うことになる。 Macだと、newsyslogというプログラムが定期的に起動しており、設定ファイルを置いとけばログローテーションを実行してくれる。

設定ファイルは、/etc/newsyslog.d以下に適当な名前で置く(要rootパーミッション)。設定ファイルの書式は、以下のような感じ。#で始まる行はコメントである。

# logfilename       [owner:group]  mode  count  size     when  flags  [/pid_file]  [sig_num]
<logファイルのパス>  hotoku:staff   640   5      10000    *     NJ

フィールドの意味は、だいたい想像が付くので略。flagsだけメモしておく。

  • N ログファイルをローテートとするときにシグナルを送るプロセスがない
  • J ローテートされたログファイルを圧縮する

タグ: ,

カテゴリー:

更新日時: