crontab の使い方
定期実行の設定
書き方
crontab -l crontab ファイル (crontab -l; echo '0 3 * * * コマンド') | crontab - crontab -r
分 時 日 月 曜日 コマンド の順に書きます。cronie パッケージと crond サービスが必要です。
よく使うオプション
| オプション | 意味 |
|---|---|
-l | 今の設定を見る |
-e | エディタで書き換える |
-r | 設定を全部消す |
-u ユーザー | ほかのユーザーの設定を扱う(root だけ) |
ファイル / - | ファイル(- なら標準入力)の中身で置き換える |
例
$ crontab -l# 毎日 3 時にバックアップ
0 3 * * * /home/ec2-user/backup.sh自分の定期実行の設定を見ます。
$ crontab -e
エディタで設定を書き換えます。保存して閉じると、すぐに効きます。
$ sudo crontab -u apache -l
apache ユーザーの設定を root が見ます。
$ (crontab -l; echo '30 2 * * 1 /usr/local/bin/report.sh') | crontab -
今の設定を残したまま、毎週月曜 2 時 30 分の行を足します。
よくある間違い・注意
- crontab -r は確認なしで全部消えます。e と r はキーボードで隣なので、打ち間違いに注意します。
- cron の中では PATH が短く、ホームでの設定も読まれません。コマンドはフルパスで書きます。
- 動かないときは、crond が動いているか(systemctl status crond)と、/var/log/cron を見ます。
実際に打って練習する
Linux レベル1 コースの Lv75「時の番人 crontab」で覚えます(第4章 サーバーの守り手(パッケージとサービス))。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。
Lv1〜16 は、登録不要・無料で遊べます(それより先はブロンズ以上のプランで遊べます)。