【クロンタブ】

crontab とは?

💡 「毎日○時に○○して」を叶えるLinuxの目覚まし時計
📌 このページのポイント
crontab のスケジュール書式 0-59 0 0-23 3 1-31 * 1-12 * 曜日 0-6 * 0 3 * * * /home/user/backup.sh → 毎日午前3時にbackup.shを実行 実行タイムライン: 3:00 3:00 3:00 3:00 月曜 火曜 水曜 木曜
crontab の5フィールド書式とスケジュール実行のイメージ
ひよこ ひよこ

毎日決まった時間にバックアップを取りたいんだけど、毎回手動でやるの面倒だなぁ…

ペンギン先生 ペンギン先生

crontabを使えば自動化できるよ!crontab -eで設定ファイルを開いて、実行したい時間とコマンドを書くだけなんだ。

ひよこ ひよこ

時間の指定ってどう書くの?

ペンギン先生 ペンギン先生

「分 時 日 月 曜日 コマンド」の順番で書くよ。たとえば毎日午前3時にバックアップなら「0 3 * * * /home/user/backup.sh」。アスタリスク(*)は「毎回」という意味だね。

ひよこ ひよこ

「毎週月曜の朝9時」みたいなのもできる?

ペンギン先生 ペンギン先生

「0 9 * * 1 コマンド」でOKだよ。曜日は0が日曜、1が月曜…6が土曜。「*/5 * * * *」なら5分おき、「0 */2 * * *」なら2時間おきといった書き方もできるよ。

ひよこ ひよこ

設定したのに動かないんだけど…

ペンギン先生 ペンギン先生

crontabあるあるだね。一番多い原因は環境変数の違い。ターミナルで動くコマンドでもcronでは動かないことがある。コマンドはフルパスで書くこと、あとPATHを明示的に設定するのがコツだよ。出力を /tmp/cron.log にリダイレクトしてデバッグするのも定番テクニックだね。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「crontab」って出てきたら「Linux定期実行スケジューラー」と思えればだいたいOK!
📖 おまけ:英語の意味
「cron table」 = クロンテーブル(時刻表)
💬 chronos(ギリシャ語で時間)が語源のcronと、table(表)を組み合わせた名前だよ
← 用語集にもどる