定期実行・ログ出力・失敗検知メールなど、日常運用の最小単位を再現する練習です。
想定時間:各6〜10分
1) 毎日0時にスクリプトを実行する
問題:/home/user/backup.sh を毎日0時に実行する cron 設定をしてください。
▶解答例
0 0 * * * /home/user/backup.sh
2) 毎時30分にログを追記する
問題:毎時30分に date の結果を /var/log/cron_test.log に追記してください。
▶解答例
30 * * * * date >> /var/log/cron_test.log
3) 標準出力と標準エラーを分けて保存する
問題:job.sh を毎朝7時に実行し、標準出力を job.out に、エラーを job.err に保存してください。
▶解答例
0 7 * * * /home/user/job.sh > /home/user/job.out 2> /home/user/job.err
4) 成功したときだけメール送信する
問題:report.sh を毎週月曜の朝6時に実行し、成功時だけ結果をメールで送るようにしてください。
ヒント:mail コマンド利用、&& で制御。
▶解答例
0 6 * * 1 /home/user/report.sh | mail -s “Weekly Report” admin@example.com
5) 失敗時だけメール通知する
問題:sync.sh を実行し、失敗した場合のみメール通知してください。
▶解答例
0 * * * * /home/user/sync.sh || echo “sync failed” | mail -s “Alert: sync failed” admin@example.com
6) cron の実行履歴を確認する
問題:cron が正しく実行されているか、システムログから確認してください。
ヒント:ディストリごとにログファイルが異なる。
▶解答例
grep CRON /var/log/syslog
学習のヒント
- cron フォーマット:
分 時 日 月 曜日 コマンド - 出力はデフォルトでメール送信される(環境により
MAILTOを設定) - 成功/失敗の判定は
&&や||を組み合わせる - 運用では ログ保存・メール通知・履歴確認 がセット
これらを押さえることで「定期処理が動いたのか?失敗していないか?」を最小限で担保できます。

