LinuCレベル1 システム管理 問26
システム管理/ジョブスケジューリングrootが用意した実行可能なシェルスクリプトを、crontabに実行時刻を書かずに、1日1回定期的に実行させたい。スクリプトを配置する場所として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル1の出題範囲「システム管理」に対応。実際の試験問題ではありません)
- A/etc/cron.d/
- B/etc/cron.daily/
- C/var/spool/cron/
- D/etc/anacrontab
正解: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の設定ファイルで、ジョブの実行間隔や遅延時間を記述するものです。スクリプトを置く場所ではありません。