【Linux】Cronジョブチートシート - j-komatsu/myCheatSheet GitHub Wiki
Cronジョブチートシート
目的
定期的にタスクを自動化するためのcronジョブ設定と基本的な使用例をまとめる。
インデックス
1. 基本構文
- 構文:
* * * * * command_to_execute │ │ │ │ │ │ │ │ │ └───── 曜日 (0 - 7) (日曜日は0または7) │ │ │ └──────── 月 (1 - 12) │ │ └────────── 日 (1 - 31) │ └──────────── 時 (0 - 23) └────────────── 分 (0 - 59)
2. スケジュールの設定
- 例:
- 毎分実行:
* * * * * /path/to/command
- 毎時0分に実行:
0 * * * * /path/to/command
- 毎日午前3時に実行:
0 3 * * * /path/to/command
- 毎週月曜日に実行:
0 0 * * 1 /path/to/command
- 毎月1日に実行:
0 0 1 * * /path/to/command
- 毎分実行:
3. Cronジョブの確認と編集
- 現在のcronジョブを確認:
crontab -l
- cronジョブを編集:
crontab -e
- 特定のユーザーのcronジョブを確認:
crontab -u [ユーザー名] -l
4. 使用例
- バックアップスクリプトを毎晩2時に実行:
0 2 * * * /home/user/backup.sh
- ウェブサーバーを毎日午前1時に再起動:
0 1 * * * /usr/sbin/service apache2 restart
- ログを毎月末日にアーカイブ:
0 0 28-31 * * [ "$(date +\%d -d tomorrow)" = "01" ] && /path/to/archive_logs.sh
5. ログとデバッグ
- cronジョブの実行ログを確認:
grep CRON /var/log/syslog
- エラーログを確認:
tail -f /var/log/syslog
- ジョブ実行結果をメールで受け取る:
MAILTO="[email protected]"
6. 便利なヒント
- 特定の時間帯のみ実行:
0 9-17 * * * /path/to/command
- 標準出力とエラー出力をログファイルにリダイレクト:
* * * * * /path/to/command >> /path/to/logfile 2>&1
- 環境変数の設定:
PATH=/usr/local/bin:/usr/bin:/bin