過去問ドリル

LinuCレベル1 重要なシステムサービス 問26

重要なシステムサービス/システムのログ

/etc/logrotate.d/myapp にアプリケーションのログファイルを登録した。ところが、アプリケーションの設定によってはログファイルが作られないことがあり、そのたびにlogrotateがエラーを出す。ファイルが存在しない場合はエラーにせず次へ進ませる指定として適切なものはどれか。

当サイトのオリジナル問題(LinuCレベル1の出題範囲「重要なシステムサービス」に対応。実際の試験問題ではありません)

正解:D

解説

logrotateの設定では、対象のログファイルが存在しないと既定ではエラーになります。missingok を指定すると、ファイルが無い場合はエラーを出さずに次のログファイルの処理へ進みます。/etc/logrotate.d/ の下の設定ファイルは、/etc/logrotate.conf の include 指定によって読み込まれ、ログごとに回転の周期(daily、weeklyなど)や保持する世代数(rotate)、圧縮の有無(compress)を指定できます。設定を試すときは logrotate -d で、実際には回転させずに動作を確認できます。

選択肢ごとの解説

  • A誤り。notifempty は、ログファイルが空のときにローテーションを行わないようにする指定です。
  • B誤り。copytruncate は、ログファイルをコピーした後に元のファイルを空にする方式でローテーションする指定です。
  • C誤り。delaycompress は、直前にローテーションしたファイルの圧縮を次回のローテーションまで遅らせる指定です。
  • D正しい。missingok を指定すると、ログファイルが存在しなくてもエラーにせず処理を続けます。
LinuCレベル1の問題を演習モードで解く