練習問題:自動化・バッチ(cron)(Lv3〜4/6問)

定期実行・ログ出力・失敗検知メールなど、日常運用の最小単位を再現する練習です。
想定時間:各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 を設定)
  • 成功/失敗の判定は &&|| を組み合わせる
  • 運用では ログ保存・メール通知・履歴確認 がセット

これらを押さえることで「定期処理が動いたのか?失敗していないか?」を最小限で担保できます。

学びを“実務”へつなぐ最短ルート

独学で積み上げた「わかった」を、仕事で使える「できる」へ。
学習ハブの内容を踏まえて、実務に直結する学習設計・添削・質問環境を整えたい人は、下記のページで具体的な進め方を確認してください。

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする