LinuxのCronで自動化入門|定期実行タスクの設定方法を解説

現場実践|Linux自動化
LinuxのCronで自動化入門
定期実行タスクの設定方法
「毎晩0時にバックアップを取りたい」「毎週月曜日にレポートを送りたい」——Cronを使えばそれらが全て自動化できます。Cron設定の基礎と実践例を解説します。
💡 Cronはインフラエンジニアの「時間節約の最強ツール」。一度設定すれば毎日・毎週・毎月のルーティン作業が自動で完了します。
1. Cronとは
まず、CronはLinuxの標準的な定期実行スケジューラです。crontabコマンドでジョブ(実行するコマンド・スクリプト)と実行時刻を登録すると、指定した時刻に自動的に実行されます。
2. crontabの書き方
# crontabの書式:
# 分(0-59) 時(0-23) 日(1-31) 月(1-12) 曜日(0-7,0と7は日曜) コマンド
# 毎日0時にバックアップスクリプトを実行
0 0 * * * /home/admin/scripts/backup.sh
# 毎週月曜日8時にレポートを送信
0 8 * * 1 /home/admin/scripts/send_report.sh
# 毎時0分にディスク使用量をチェック
0 * * * * df -h >> /var/log/disk_check.log
# 5分おきに死活監視スクリプトを実行
*/5 * * * * /home/admin/scripts/health_check.sh# crontabの編集・確認コマンド
crontab -e # 現在のユーザーのcrontabを編集
crontab -l # 登録されているジョブを確認
crontab -r # 全ジョブを削除(注意:元に戻せない)3. 実践サンプル集
- 毎日0時にmysqldumpでDBバックアップ:
0 0 * * * mysqldump -u root -pPASS db > /backup/db_$(date +%Y%m%d).sql - 毎週日曜日3時にyum updateを実行:
0 3 * * 0 yum update -y >> /var/log/yum_update.log 2>&1 - 毎分死活監視してメール通知:
* * * * * curl -s http://localhost > /dev/null || echo "サーバー障害" | mail -s "Alert" admin@example.com
4. よくあるトラブルと対処法
スクリプトを手動実行すると動くがCronから動かない
Cronは環境変数(PATH等)がシェルと異なるため、スクリプト内でコマンドのフルパスを指定する(例:/usr/bin/mysqldump)か、crontabの先頭にPATHを定義する。
実行されているか確認したい
grep CRON /var/log/messagesまたはjournalctl -u crondでCronのログを確認する。スクリプトの出力を2>&1 >> /var/log/cron_job.logでログファイルに記録するのも有効。📌 この記事のポイント
- crontabは「分 時 日 月 曜日 コマンド」の順で記述する
- Cronではコマンドをフルパスで指定するのが基本
- 実行ログを必ずファイルに残して動作確認できるようにする
キャリアの疑問、一緒に解決しませんか?
Infra Academyでは、インフラ系ITエンジニアを目指す方への個別サポートを行っています。2026年7月からフリーランス講師として本格始動予定です。
ABOUT ME




