Cron ジョブ

A cron job is a time-based job scheduler in Unix-like operating systems that allows users to execute commands or scripts automatically at specified intervals...

cronジョブは、Unix系オペレーティングシステムにおける時間ベースのジョブスケジューラです。これにより、ユーザーは指定された時刻、日付、または間隔でコマンドまたはスクリプトを自動的に実行するようにスケジュールできます。中核となるコンポーネントは cron デーモンであり、これはユーザー定義の設定ファイル(crontab として知られる)を定期的にチェックしてスケジュールされたタスクを実行するバックグラウンドプロセスです。各ユーザーは独自のcrontabファイルを持つことができ、システム全体のcrontabファイルも存在します。cronジョブを定義するための構文は、実行するコマンドの前に5つの時間と日付のフィールド(分(0〜59)、時(0〜23)、月の日の値(1〜31)、月(1〜12)、曜日の値(0〜7、ここで0と7は両方とも日曜日を表します))を含みます。フィールド内のアスタリスク()は、そのフィールドの「すべての可能な値」を意味します。たとえば、0 2 /path/to/script.sh は、スクリプト /path/to/script.sh を毎日午前2時に実行します。cronジョブは、システムメンテナンス、バックアップ、データ同期、レポート生成、定期的な通知の送信などのルーチンタスクを自動化するために不可欠です。設定ミスは、タスクの実行漏れや意図しない実行につながる可能性があるため、慎重な計画とテストが必要です。

        graph LR
  Center["Cron ジョブ"]:::main
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 5歳でもわかるように説明

コンピュータに特定の時間にゴミ出しや水やりといった「お使い」を自動的に実行させるための目覚まし時計のようなものです。

🤓 Expert Deep Dive

ギリシャ語の「chronos」(時間)に由来するcronは、Unix系システムにおけるタスク自動化の基本的なユーティリティです。cron デーモン(crond)は毎分起動し、その分に実行がスケジュールされているジョブがないかcrontabファイルをチェックします。crontabファイルには、スケジュール(時間フィールド)と実行するコマンドまたはスクリプトを指定するエントリが含まれています。時間指定は特定の構文 * command を使用します。各アスタリスクは時間単位(分、時、月の日の値、月、曜日)を表します。カンマ(リスト)、ハイフン(範囲)、アスタリスク(ワイルドカード)のような特殊文字は柔軟性を提供します。システム全体のcrontab(例: /etc/crontab/etc/cron.d/)はシステム管理タスクを可能にし、ユーザーのcrontab(crontab -e)は個々のユーザータスク用です。cronジョブの環境変数と実行コンテキストは、対話型シェルとは大きく異なる場合があり、スクリプトが環境に依存しないように書かれていない場合(例: 実行可能ファイルへのフルパスを指定する)に問題が発生することがよくあります。Anacronは、システムが電源オフのために実行できなかったジョブを実行するように設計された関連ユーティリティであり、ラップトップや断続的に接続されるシステムに適しています。

📚 出典