メインコンテンツに移動
ホーム

古松

メインナビゲーション

  • ホーム
  • ビデオ
  • ご連絡

パンくず

  • ホーム
  • レンタルサーバー(バリューサーバー)でのcronジョブの設定

レンタルサーバー(バリューサーバー)でのcronジョブの設定

問題点:レンタルサーバー(Valueserver)のcronジョブが直接にwgetコマンドの使用ができません

  • 環境:バリューサーバー(valueserver)
  • バリューサーバーでのCRON管理画面で直接にwgetコマンドを使用したが、cronの実行はありませんでした
    /virtual/[アカウント名]/wget wget -O - -q -t 1 http://exapmle.jp/cron.php?cron_key=xxxxxx
    レンタルサーバー(Valueserver)での誤ったcronジョブ設定

レンタルサーバー(Valueserver)ではcronジョブがshスクリプトの実行します

  • バリューサーバーのcron実行説明を読んでみたが、shスクリプトの実行のみのようで、ほかのコマンド(例:php,wgetなど)の実行はできないようです
  • 以下のようなshスクリプトでwgetを実行するように書き換えました
    レンタルサーバー(Valueserver)でのcronジョブ設定
    #!/bin/sh
    cd /virtual/[アカウント名]
    wget -O - -q -t 1 http://example.jp/cron.php?cron_key=xxxxxxxxxxxxxxx
  • shスクリプトについていくつかの注意点があります
    • 絶対パスの使用(ce /virtual/[your account])
    • shファイル実行させる権限(755)の設定

レンタルサーバー(Valueserver)のcron実行制限がいろいろあります

  • cronジョブについての説明を読んでみると、いつくか注意点があります
  • ジョブの実行頻度は1時間以上に間隔(毎分、5分毎などの設定ができない)となります
  • ジョブの実行時間が3分間までで、3分間以上になると強制的に止めます(長いジョブの実行はできないーDrupalのcronジョブをBackground Processに設定したほうが良いでしょう)。

Drupalのモジュール(Ultimate Cron)でサイトのバッチジョブの管理

DrupalのデフォルトCronジョブ管理画面ではあまりにシンプルで具体的なジョブ、実行頻度が表示されていない

  • 環境:Drupal7.5.4、Cron:コアーモジュール
  • Cron管理画面(ホーム » 管理 » 環境設定 » システム » Cron)で具体的なジョブ名、各ジャブの実行頻度が分かりません
    DrupalのデフォルトCron管理画面
    • 手動でcron実行
    • cron実行URL
    • Cronの実行頻度

モジュール(Ultimate Cron)で詳細なCronジョブ管理を行います

  • モジュール:Ultimate Cron7.x-2.3 をインストールして有効化
  • Cronの管理画面(ホーム » 管理 » 環境設定 » システム » Cron)に具体的なジョブ、実行頻度などが表示されます
    モジュール(Ultimate Cron)のCron管理画面
  • デフォルトのCron管理と違って、スケジューラー、ランチャー、ログ管理、ジョブ管理がプラグインされています
    • スケジューラー:簡単、crontab二種類あります。ジョブの実行頻度を設定します。
    • ランチャー:Background Process、シリアル二種類あります。シリアルは同じスレート内でジョブを実行します。Background Processではモジュール(Background Process)に依存し、各ジョブをBackground Processに上げて実行します。
    • ログ管理:キャッシュとデータベース二種類あります。ジョブ実行ログがDBまたはキャッシュに管理する設定
    • ジョブ管理:各詳細のジョブ名、実行頻度、実行頻度の再設定(オーバーライド)を行います

適切なCron動作のトリガー選択/設定が重要

  • デフォルトのCron管理では、管理画面上の実行頻度(例:30分毎)より、サイトのページがアクセスされたら、前回の実行時間と比較して、設定された頻度時間より長ければ、Cronを実行させます
    • あまりサイトのページのアクセス量が少ないときに、Cronの実行が少ないです
    • ジョブに設定された実行頻度より大幅に遅れる可能性があります(アクセスが少ない場合)
  • 複数のCron実行トリガーがあります。
    Cron実行のトリガー
  • Cron管理画面、Drushで手動のCron実行を行います
    • あくまで、必要な時にCronを実行させるので、一時的なものとなります
  • Unix/Linux環境では、wgetコマンドでCronのURLを引数にしてCronを実行します
    • 毎分でcronを実行させる例
      * * * * * /usr/bin/wget -O - -q -t 1 http://www.example.com/cron.php?cron_key=xxxxxxxxxx
    • CronのURLがレポート画面(ホーム » 管理 » レポート » サイトの状態)に「cronメンテナンスタスク」に載っています

検索フォーム

カテゴリ別

  • laravel
  • drupal
  • javascript
  • windows
  • html
  • mysql
  • php
  • apache
  • css
  • SEO
  • video
  • wordpress
  • linux
  • python
  • Electron
  • Visual Studio Code

google ads