LinuxのCronで自動化入門|定期バックアップ・ログ削除をスケジュール実行

現場実践|Linux自動化
LinuxのCronで自動化入門
定期バックアップ・ログ削除をスケジュール実行
「毎日手動でバックアップしていた」——Cronを使えば繰り返し作業を完全自動化できます。Linuxエンジニアの必須スキルcronの使い方を解説します。
💡 CronはLinuxの定番ジョブスケジューラ。インフラ現場では定期バックアップ・ログローテーション・証明書更新等の自動化に日常的に使われます。
1. Cronとは
まず、CronはLinuxのジョブスケジューラです。指定した日時・間隔でコマンド・シェルスクリプトを自動実行します。crontab -eコマンドでスケジュールを編集します。
2. crontabの書き方
# 書式:分 時 日 月 曜日 コマンド
# 曜日は 0=日曜 〜 6=土曜
# 毎日3時にバックアップスクリプトを実行
0 3 * * * /home/user/backup.sh
# 毎週月曜9時にレポートを生成
0 9 * * 1 /opt/scripts/report.sh
# 毎時0分にログ容量を確認
0 * * * * df -h >> /var/log/disk_check.log
# 毎分(テスト用)
* * * * * echo "cron test" >> /tmp/cron_test.log3. 実践的なcron設定例
# MySQLバックアップ(毎日深夜2時)
0 2 * * * mysqldump -u root -pPASSWORD mydb > /backup/db_$(date +%Y%m%d).sql
# 30日以上前のバックアップを削除(毎週日曜3時)
0 3 * * 0 find /backup -name "*.sql" -mtime +30 -delete
# SSL証明書の自動更新確認(毎日)
0 4 * * * /usr/bin/certbot renew --quiet4. 実務Tips
- MAILTO設定:crontab冒頭にMAILTO=admin@example.comと書くとジョブの出力をメールで受け取れる
- 絶対パスを使う:コマンドは必ず/usr/bin/python等の絶対パスで指定する(cronのPATHは限定的)
- 標準エラーもログに残す:コマンドの末尾に>> /var/log/job.log 2>&1を付けてエラーもログに記録する
- テスト実行:新しいcronを追加したらMATILTO設定でメールを受け取り正常に実行されているか確認する
📌 この記事のポイント
- Cronは「分 時 日 月 曜日 コマンド」の5フィールドでスケジュールを定義する
- コマンドは絶対パスで指定する(cronのPATHは通常のシェルと異なる)
- 標準エラーを2>&1でログに残すことでcronの問題を調査しやすくなる
キャリアの疑問、一緒に解決しませんか?
Infra Academyでは、インフラ系ITエンジニアを目指す方への個別サポートを行っています。2026年7月からフリーランス講師として本格始動予定です。
ABOUT ME




