現場実践|Linux自動化

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

「毎日手動でバックアップしていた」——Cronを使えば繰り返し作業を完全自動化できます。Linuxエンジニアの必須スキルcronの使い方を解説します。

読了目安:約15分更新日:2026年3月

💡 CronはLinuxの定番ジョブスケジューラ。インフラ現場では定期バックアップ・ログローテーション・証明書更新等の自動化に日常的に使われます。

この記事を書いた人
現役ITエンジニア・IT講師(経験14年)
CCNA・CCNP 取得LPIC-1 保有AzureFundamentals 保有SES現場を複数経験

Linux自動化・運用効率化の経験から、Cronの実践的な使い方を解説します。

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.log

3. 実践的な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 --quiet

4. 実務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月からフリーランス講師として本格始動予定です。

※Cronの仕様はOS・バージョンにより異なります。

ABOUT ME
たから
サラリーマンをしながら開業して経営やってます。 今年、本業で独立・別事業を起業予定です。 ◆経験:IT講師/インフラエンジニア/PM/マネジメント/採用/運用・保守・構築・設計 ◆取得資格:CCNA/CCNP/LPIC-1/AZ-900/FE/サーティファイC言語 ◆サイドビジネス:アパレル事業/複数のWEBメディアを運営