LinuCレベル1 重要なシステムサービス 問26
重要なシステムサービス/システムのログ/etc/logrotate.d/myapp にアプリケーションのログファイルを登録した。ところが、アプリケーションの設定によってはログファイルが作られないことがあり、そのたびにlogrotateがエラーを出す。ファイルが存在しない場合はエラーにせず次へ進ませる指定として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル1の出題範囲「重要なシステムサービス」に対応。実際の試験問題ではありません)
- Anotifempty
- Bcopytruncate
- Cdelaycompress
- Dmissingok
正解:D
解説
logrotateの設定では、対象のログファイルが存在しないと既定ではエラーになります。missingok を指定すると、ファイルが無い場合はエラーを出さずに次のログファイルの処理へ進みます。/etc/logrotate.d/ の下の設定ファイルは、/etc/logrotate.conf の include 指定によって読み込まれ、ログごとに回転の周期(daily、weeklyなど)や保持する世代数(rotate)、圧縮の有無(compress)を指定できます。設定を試すときは logrotate -d で、実際には回転させずに動作を確認できます。
選択肢ごとの解説
- A誤り。notifempty は、ログファイルが空のときにローテーションを行わないようにする指定です。
- B誤り。copytruncate は、ログファイルをコピーした後に元のファイルを空にする方式でローテーションする指定です。
- C誤り。delaycompress は、直前にローテーションしたファイルの圧縮を次回のローテーションまで遅らせる指定です。
- D正しい。missingok を指定すると、ログファイルが存在しなくてもエラーにせず処理を続けます。