【クロンタブ】

crontab とは?

最終更新:
💡 「毎日○時に○○して」を叶えるLinuxの目覚まし時計

cronに定期実行の時刻とコマンドを伝える設定表。また、そのユーザー用設定表を編集・表示するコマンドの名前。Linuxなどで、繰り返し作業の自動化に使う。

📌 このページのポイント
crontab:定期実行の設定表 ユーザー用の例:5つの時刻欄分0–590時0–233日1–31*月1–12*曜日0–7*0 3 * * * /home/user/backup.shcronが動作中なら、毎日3時に起動月曜3:00火曜3:00水曜3:00実行するファイル・権限・タイムゾーンを確認
5欄の後に実行コマンドを書くユーザー用crontabの例。0または7は日曜、1は月曜。スクリプトは説明用のパスで、実際に用意する必要がある。曜日の点は日々の起動時刻を示し、処理の成功を保証しない。
ひよこ ひよこ
crontabを使うと定期実行できるの?
ペンギン先生 ペンギン先生
できるよ。crontabは時刻とコマンドを書く設定表で、同じ名前のコマンドで編集や表示をするんだ。設定を見て実際にコマンドを起動するのは、動作中のcronだよ。
ひよこ ひよこ
まず、どう設定するの?
ペンギン先生 ペンギン先生
自分用の設定はcrontab -eで編集し、crontab -lで確認するよ。基本書式は「分 時 日 月 曜日 コマンド」。システム用の/etc/crontabなどでは、さらに実行ユーザーの欄があるので混同しないでね。
ひよこ ひよこ
毎日3時にバックアップする例は?
ペンギン先生 ペンギン先生
「0 3 * * * /home/user/backup.sh」だよ。時刻欄の「*」はその欄の全範囲を表す。これは例なので、スクリプトを実際に用意し、実行権限と使うタイムゾーンを確かめる必要があるんだ。
ひよこ ひよこ
毎週や、数分ごとの指定もできる?
ペンギン先生 ペンギン先生
Cronieなら「0 9 * * 1 /home/user/backup.sh」は月曜9時、「*/5 * * * * /home/user/backup.sh」は毎時0・5・10分…に実行する例だよ。間隔指定は欄の範囲内で数えるので、たとえば「*/35」は35分おきに連続する指定ではないんだ。
ひよこ ひよこ
設定したのに動かないときは?
ペンギン先生 ペンギン先生
cronの稼働、実行ユーザーと権限、PATHやシェルなどの環境を確認しよう。端末と同じ環境とは限らないので、必要な環境を明示し、コマンドやファイルのパスを確かめる。出力やエラーを確認することも大切だよ。
もっと詳しく知りたい人へ

日付と曜日を両方指定すると、両方に一致する日だけ動きますか?

ここで参照するCronieでは、日と曜日を両方とも「*」以外に絞ると、どちらかに一致する日に実行します。たとえば「0 9 1 * 1」は毎月1日と毎週月曜の9時です。一般のcron式ライブラリまで同じ仕様とは限らないため、使う実装の説明を確認してください。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「crontab」って出てきたら「cronに定期実行を頼む設定表と、その編集コマンド」と思えればだいたいOK!
📖 おまけ:英語の意味
「cron table」 = cronの設定表
💬 定期実行を担当するcronと、表を意味するtableを組み合わせた名前だよ

参考資料

← 用語集にもどる