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 は、登録不要・無料で遊べます(それより先はブロンズ以上のプランで遊べます)。

Linux コマンド一覧(LinuC レベル1 の範囲)へ戻る