セットアップ
cronが動かないときに見るところ
2026年8月20日
この記事はAIが下書きを作成しています。内容に誤りに気づいた場合はお問い合わせよりお知らせください。

レン
定期実行を設定したのに動かない…手で打つとちゃんと動くんだけど。

プロクラ
その症状、原因はほぼ決まっているよ。定期実行は、キミがログインしたときとは違う環境で動くんだ。
いちばん多い原因

プロクラ
ログインしたときは、設定ファイルが読み込まれて環境が整った状態になる。定期実行ではそれが起きない。だから、手で打てば通るコマンドが「見つからない」になる。
- コマンドをフルパスで書く(which で調べた結果をそのまま使う)
- 処理の中で使う環境変数を、その中で明示的に読み込む
- 作業ディレクトリを前提にしない。必要なら最初に移動する
- PATHを設定ファイルの先頭で指定してもよい
次に見るところ
- 書式が合っているか(分・時・日・月・曜日の5つ)
- 最終行が改行で終わっているか(終わっていないと読まれないことがある)
- 誰の設定として登録したか(rootと一般ユーザーで別々に持つ)
- サービス自体が動いているか
- 実行するファイルに実行権限があるか

プロクラ
3つめは意外と多いよ。rootで登録したつもりが一般ユーザー側に入っていて、権限が足りずに失敗している、という形だね。
何が起きたのかを見る

プロクラ
動かないときに一番困るのは、何も分からないことだよね。出力を捨てずに残す設定にしておけば、次からは原因がすぐ分かる。
- 実行結果を、エラーも含めてファイルへ書き出す
- システムのログにも、実行されたかどうかの記録が残る
- 「実行はされているが失敗している」のか「そもそも実行されていない」のかを、まず分ける

プロクラ
この切り分けが最初にできると、調べる範囲が半分になる。実行されていないなら書式や登録先の問題、実行されて失敗しているなら環境の問題だよ。
設定するときの習慣
- いきなり本番の時刻で登録せず、数分後に実行させて動作を確かめる
- 処理が重なると困るものは、二重に動かない仕組みを入れる
- ログを書き出す設定にしたら、そのログ自体の削除も設定する
- サーバーを移行するとき、この設定は移し忘れやすい

レン
手で打つときと環境が違う。それが分かれば納得だ。
cron以外の選択肢

プロクラ
定期実行の仕組みは1つではないよ。最近のOSには、失敗したときの再試行や、前回の実行結果を持つものも用意されている。
- systemdのタイマー: 実行結果や失敗の記録が残り、状態を確認しやすい
- サーバーが止まっていた間の分を、起動後に実行させることもできる
- アプリ側に定期実行の仕組みがあるなら、そちらに寄せる手もある
- どれを使うにせよ、実行されたかを後から確認できることが大事
あわせて読みたい
- セットアップさくらのVPSSSHで接続できなくなったとき、どこから調べるか昨日まで入れたのに繋がらない、という状況の切り分け手順。どこで止まっているかを4段階で確認し、締め出されたときの最後の入り口までを解説します。
- セットアップXServer VPSwp-cronが重い・動かない:サーバーのcronに任せるWordPressの定期処理はアクセスをきっかけに動く仕組みです。アクセスが少ないと動かず、多いと重くなる理由と、サーバー側のcronへ移す方法を解説します。
- セットアップKAGOYA CLOUD VPSIPv6を有効にすべきか:有効にする前に考えること使えるからといって有効にすると、片方だけ守られていない状態が生まれます。何が変わるのか、ファイアウォールをどう揃えるのか、判断材料を解説します。
- セットアップクラウドVPS byGMOパッケージの更新でエラーが出る更新が通らないときの原因を、取得先・容量・依存関係・サポート期限の4つに分けて確認します。特に、期限切れのOSで起きる詰まり方を解説します。
サーバーを触る前に押さえておきたいこと
姉妹サイトの、この記事と相性のいいページです。
- Linuxコマンド入門
ls / cd / grep などを疑似ターミナルで試しながら学べる — prodou.net
- シェルスクリプト入門
サーバー作業の自動化スクリプトを基礎から — prodou.net
- Password Generator
サーバー用に強いパスワードをその場で生成 — toolkitbox.net
- Cron Generator
定期実行のcron式を組み立てる — toolkitbox.net