過去問ドリル

LinuCレベル1 システム管理 問26

システム管理/ジョブスケジューリング

rootが用意した実行可能なシェルスクリプトを、crontabに実行時刻を書かずに、1日1回定期的に実行させたい。スクリプトを配置する場所として適切なものはどれか。

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

正解:B

解説

/etc/cron.daily/ に置いた実行可能なファイルは、run-partsによって1日1回まとめて実行されます。同様に /etc/cron.hourly/、/etc/cron.weekly/、/etc/cron.monthly/ があります。RHEL系では、cron.hourly は crond が /etc/cron.d/0hourly から、cron.daily・cron.weekly・cron.monthly は anacron が /etc/anacrontab に従って実行し、Debian系では /etc/crontab(anacronを導入していればanacron)から実行されます。なお、Debian系のrun-partsは既定でファイル名に「.」を含むファイルを実行しないため、backup.sh のような名前では実行されない点に注意が必要です。

選択肢ごとの解説

  • A誤り。/etc/cron.d/には、ユーザー名のフィールドを含むcrontab形式の設定ファイルを置きます。実行時刻の記述が必要です。
  • B正しい。ここに置いた実行可能なファイルは、実行時刻を書かなくても1日1回実行されます。
  • C誤り。/var/spool/cron/は、crontabコマンドで登録したユーザーごとのcrontabが保存される場所で、直接スクリプトを置く場所ではありません。
  • D誤り。/etc/anacrontabはanacronの設定ファイルで、ジョブの実行間隔や遅延時間を記述するものです。スクリプトを置く場所ではありません。
LinuCレベル1の問題を演習モードで解く