cronとは?定期処理の仕組みを初心者向けに解説

cronとは?定期処理の仕組みを初心者向けに解説

cron(クロン)は、LinuxやUNIX系OSで「決めた時刻・間隔にコマンドや処理を自動実行する」ための仕組みです。

たとえば「毎日3時にバックアップする」「5分ごとに監視スクリプトを動かす」「毎週月曜に集計処理を実行する」といった定期処理に使います。

ただし、通常の共用レンタルサーバーを使う初心者が、必ずcronを直接設定する必要があるわけではありません。サーバー会社の管理画面に「Cron設定」「定期実行」機能が用意されている場合は、そちらを使う方が安全です。

30秒でわかる結論

30秒でわかる結論

  • cronは、決めた時刻・間隔でコマンドを自動実行する仕組み
  • 一般的なcrontabは「分・時・日・月・曜日」の5項目と実行コマンドで指定する
  • 毎日・毎時・毎週などの定期処理を自動化できる
  • 共用レンタルサーバーでは、管理画面のcron機能を使うことが多い
  • VPSでは、自分でcrontabやサービス設定を管理する場面がある
  • WordPressのWP-CronはOS側のcronとは別物
  • 初心者は、実行時刻・パス・権限・ログを確認してから設定する

cronとは?

cronは、LinuxやUNIX系OSで定期的な処理を実行するために使われるスケジューラです。

人が毎回ログインしてコマンドを実行しなくても、あらかじめ設定しておけば、指定時刻に自動で処理できます。

初心者向けに一言でいうと

cron=サーバー上の「予約実行機能」です。

cronでできること

cronは、繰り返し実行したい処理を自動化するときに使います。

用途 実行例
バックアップ 毎日深夜にデータを保存
ログ整理 古いログを定期削除
集計処理 毎朝売上データを集計
監視 数分ごとに状態確認
メール送信 指定時刻に通知メールを送信
バッチ処理 夜間に大量データを処理

crontabとは?

cronで「いつ、何を実行するか」を記述する設定を、一般にcrontabと呼びます。

ユーザーごとにcrontabを持つ構成や、システム全体のcron設定を使う構成があります。

cronとcrontabの違い

cron=定期実行する仕組み
crontab=その実行予定を書く設定

cronの書き方

一般的なユーザーcrontabでは、次の5つの時刻項目と実行コマンドを並べます。

基本形

分 時 日 月 曜日 実行するコマンド

項目 値の例
分 0〜59
時 0〜23
日 1〜31
月 1〜12
曜日 0〜7など(0・7を日曜とする実装が一般的)

実装によって細かな仕様差があるため、利用中OS・レンタルサーバーのマニュアルも確認してください。

毎日3時に実行する例

毎日3:00

0 3 * * * /path/to/command

先頭から「0分、3時、毎日、毎月、毎曜日」という意味になります。

0 3 * * * = 毎日3時0分

5分ごとに実行する例

5分ごと

*/5 * * * * /path/to/command

* はその項目の全範囲を表し、*/5 は5刻みという意味で使われます。

短すぎる間隔に注意

1分ごと・5分ごとの処理を大量に登録すると、CPU・メモリ・ディスクI/Oへ負荷をかける場合があります。必要な頻度だけ設定してください。

毎週月曜に実行する例

毎週月曜9:00

0 9 * * 1 /path/to/command

曜日の扱いはcron実装や環境によって確認が必要ですが、一般的には0または7を日曜、1を月曜として扱います。

よく使う記号

記号 意味 例
* すべて 毎時・毎日など
, 複数指定 1,15
– 範囲 1-5
/ 間隔 */10

まずは「毎日」「毎時」「○分ごと」程度から理解すれば十分です。

crontabを確認・編集する基本コマンド

VPSなどでcronを直接管理する場合、一般的には次のコマンドを使います。

コマンド 用途
crontab -l 現在のcrontabを表示
crontab -e crontabを編集
crontab -r crontabを削除

crontab -r は慎重に

crontab -r は登録済みのcrontabを削除するため、内容確認のつもりで実行しないでください。初心者はまず crontab -l で確認します。

共用レンタルサーバーではcronを直接触る?

多くの場合、直接Linuxへログインしてcrontabを編集する必要はありません。

レンタルサーバー会社が「Cron設定」「定期実行」「スケジュール設定」などの管理画面を提供していれば、その画面から時刻とコマンドを登録できます。

共用レンタルサーバー 直接設定の必要度 ★★☆☆☆

管理画面のcron機能があれば、それを使うのが基本です。

WordPressだけ運営 直接設定の必要度 ★☆☆☆☆

通常はWP-Cronで足りることが多く、OS cronを意識しない場合もあります。

VPS 直接設定の必要度 ★★★★★

バックアップやバッチ処理のため、自分でcronを設定する場面があります。

専用サーバー 直接設定の必要度 ★★★★★

OS管理者として定期処理を設計・監視することがあります。

cronとWP-Cronの違い

cronとWordPressのWP-Cronは名前が似ていますが、仕組みが異なります。

項目 cron WP-Cron
動作場所 OS・サーバー側 WordPress内部
実行のきっかけ 時刻・スケジュール 基本的にサイトへのアクセスを契機に確認
時間精度 指定時刻に実行しやすい アクセスが少ないと遅れることがある
主な用途 サーバー全体の定期処理 WordPressの予約投稿・更新確認など

一番大きな違い

OS側のcronは時刻を基準に動きます。一方、WP-Cronは通常、WordPressへのアクセス時に「実行予定の処理があるか」を確認する仕組みです。

WordPressでOS側cronを使うことはある?

あります。

アクセスが少ないサイトでWP-Cronの実行が遅れる場合や、より一定間隔で処理したい場合は、サーバー側のスケジューラからWordPressのcron処理を呼び出す構成が使われることがあります。

ただし、これは通常のWordPress初心者が最初から設定するものではありません。

WP-Cronを止めるだけではダメ

OS側cronへ切り替える場合は、代わりにWordPressの定期処理を確実に呼び出す仕組みが必要です。仕組みを理解せずWP-Cronだけ無効化すると、予約投稿やプラグインの定期処理が動かなくなる可能性があります。

cronが動かない主な原因

コマンドのパスが違う

手動では動くコマンドでも、cron環境ではPATHが異なるため実行ファイルを見つけられないことがあります。

スクリプトのパスが相対指定

cron実行時の作業ディレクトリは、手動実行時と同じとは限りません。重要なファイルは絶対パスで指定する方が安全です。

実行権限がない

対象スクリプトやファイルへ、cronを実行するユーザーがアクセスできない場合があります。

環境変数が違う

ログインシェルで使える環境変数がcronでは読み込まれず、手動実行と結果が変わる場合があります。

タイムゾーンを勘違いしている

サーバーの時刻設定が日本時間ではない場合、想定時刻とずれることがあります。

cronでは絶対パスを意識する

考え方

曖昧:php script.php
明確:/usr/bin/php /home/user/scripts/script.php

PHPやPythonなどの実行ファイルの場所はサーバー環境によって異なります。上記パスをそのまま使うのではなく、利用中サーバーの仕様を確認してください。

レンタルサーバーでは、PHPバージョンごとに実行コマンドのパスが指定されている場合があります。

ログを残す

cronは人が見ていない時間に動くため、「実行されたか」「エラーが出たか」が分かるようにすることが重要です。

確認したいログ

  • 実行開始時刻
  • 正常終了したか
  • エラーメッセージ
  • 処理件数
  • 実行時間

重要処理では、標準出力・標準エラーをログへ保存したり、失敗時だけ通知したりする運用を検討します。

cronを高頻度で動かしすぎない

定期実行を細かくすれば便利ですが、実行回数が増えるほどサーバー負荷も増えます。

1日あたりの実行回数

1時間ごと:24回
15分ごと:96回
5分ごと:288回
1分ごと:1,440回

5分ごとに重いPHP処理を動かすだけでも1日288回です。処理時間が長いと、前の処理が終わる前に次の処理が始まる可能性もあります。

重複実行に注意

1回の処理に10分かかるのに5分間隔で起動すると、同じ処理が並行実行される場合があります。処理時間・排他制御・サーバー負荷を確認してください。

サーバーのタイムゾーンを確認する

「午前3時」に設定しても、サーバーがUTCで動いていれば、日本時間の午前3時とは一致しません。

レンタルサーバーの管理画面で時刻指定する場合は、日本時間として扱われることもあります。VPSの場合はOS側のタイムゾーン設定を確認します。

時刻がずれたら最初に確認

cron式が正しいのに実行時刻だけ違う場合は、サーバーのタイムゾーンを確認してください。

サマータイムがある地域では注意

cron実装によっては、サマータイム切り替え時に存在しない時刻の処理が実行されなかったり、重複する時刻で複数回実行されたりする場合があります。

日本国内の日本時間運用では通常大きな問題になりませんが、海外リージョンや海外向けサーバーでは考慮が必要です。

cronを使うときの安全な進め方

STEP 1.処理を手動で実行
まず単体で正常に動くか確認
STEP 2.実行ユーザー・パスを確認
STEP 3.低頻度でcron登録
STEP 4.ログを確認
STEP 5.必要なら頻度を調整
安定動作を確認して本番運用

初心者がcronを使うべきケース

定期バックアップ 必要度 ★★★★☆

サーバー側で自動バックアップがない場合に候補になります。

定期バッチ 必要度 ★★★★★

毎日・毎時のデータ処理など、明確な自動化目的がある場合に使います。

普通のWordPress運営 必要度 ★☆☆☆☆

通常はcronを直接設定しなくても運営できます。

VPS管理 必要度 ★★★★★

保守・バックアップ・ログ整理などで利用機会が増えます。

初心者がやらなくてよいこと

  • 目的もなく1分ごとのcronを登録する
  • 他サイトのcrontabをそのままコピーする
  • 共用サーバーでSSH設定を無理に変更する
  • WP-CronがあるだけでOS側cronへ切り替える
  • ログを確認せず「動いているはず」と判断する
  • root権限で何でも実行する

cron設定時の注意点

設定前チェック

  • その処理は本当に定期実行が必要か
  • 実行間隔は短すぎないか
  • 絶対パスを確認したか
  • 実行ユーザーに必要な権限があるか
  • サーバーのタイムゾーンは合っているか
  • 処理が重複起動しないか
  • ログやエラーを確認できるか
  • 共用サーバーの利用規約・制限内か

教科書判定

教科書判定

普通のWordPress初心者はcronを直接触らなくてよい。VPSや独自バッチで必要になったら覚える

cronはサーバー運用では重要な仕組みですが、一般的な共用レンタルサーバー利用者が最初からcrontabを編集する必要はありません。

共用サーバーなら管理画面のcron機能、WordPressだけならWP-Cron、VPSで独自処理を動かすならOS側cronというように、自分の環境に合わせて使い分けるのが基本です。

よくある質問

Q.cronは何と読みますか?

一般に「クロン」と読まれます。LinuxやUNIX系OSで定期処理を自動実行する仕組みです。

Q.cronとcrontabは同じですか?

同じではありません。cronは定期実行の仕組み、crontabは「いつ何を実行するか」を記述する設定です。

Q.WordPressを使うだけでもcron設定は必要ですか?

通常は不要です。WordPressにはWP-Cronがあります。アクセスが少なく実行時刻の正確性が必要な場合などに、サーバー側cronとの連携を検討します。

Q.cronが手動では動くのに自動実行では失敗します

PATH、環境変数、実行ユーザー、ファイル権限、作業ディレクトリなどの違いが原因になりやすいです。絶対パスとログを確認してください。

Q.1分ごとに実行しても大丈夫ですか?

技術的に設定できる環境はありますが、1日1,440回実行されます。処理負荷や重複実行、レンタルサーバー側の制限を確認し、本当に必要な場合だけ使ってください。

まとめ

cronの要点

  • cronは決めた時刻・間隔で処理を自動実行する仕組み
  • crontabで実行時刻とコマンドを指定する
  • 一般的な形式は分・時・日・月・曜日+コマンド
  • バックアップ・ログ整理・集計などに利用される
  • 共用レンタルサーバーでは管理画面から設定することが多い
  • WP-Cronとは別の仕組み
  • 絶対パス・権限・環境変数・タイムゾーン・ログを確認する
  • 高頻度実行や重複起動による負荷に注意する
  • 普通のWordPress初心者は、必要になるまで直接触らなくてよい
次に読む

「WordPressのWP-Cronとは?仕組みと動かないときの対処法」「Linuxとは?VPSとの関係を初心者向けに解説」「root権限とは?VPSでできることを解説」もあわせて確認してください。