CORESERVERのcronが動かない場合のチェック項目 | 佐渡の洋食屋店長のブログ

佐渡の洋食屋店長のブログ

佐渡の洋食屋店長のマニアックなブログです。 グルメネタは少なく、マニアックなネットTEC的なネタ、佐渡ネタが豊富なブログです。

佐渡の洋食屋店長のブログ-cronジョブ設定

■CORESERVERのcronジョブ設定について
CORESERVERはcronについてはサポート対象外となっているので、自力で設定するしかないわけですが、以前私が使っていたサーバーとはだいぶ勝手が違うので備忘録として記事を書きます。

まず、管理画面からcronジョブの時間を設定するわけですが、こちらで早速制限がありまして・・・1時間毎のジョブ設定が最短(最大実行時間)になっていて、30分毎にジョブ設定は出来ません。

ちなみに1時間毎のジョブ設定は以下のとおり。
分=0、時=*/1、日=*、月=*、曜日=*

シェルスクリプトの設置入力欄ですが、そのままcron.shと入力すると、public_htmlのフォルダがあるのと同じ階層にcron.shを置かなければいけません。ここらへんの階層のどこを読むのか?というのが理解しづらい部分かもしれません。

No such file or directoryというお知らせメールが届く場合は、これらを見直してみましょう。


■スクリプト内は絶対パスで指定
これが意外とハマりやすいのかなぁと思いました。
cronジョブ設定が上手くいって、無事シェルを読み込んで実行されたとしても、スクリプト内でrequireやファイルI/Oでフォルダが上手く読み込めないんですね。

cronで設定したスクリプト内のフォルダ指定は絶対パスで指定しましょう。
例:$file="/virtual/サーバーID/public_html/folder1/script.php";

これが間違っていると、お知らせメールにこんな感じで届きます。
script.cgi: Can't locate /usr/local/bin/perl /virtual/サーバーID/public_html/script.pl in @INC (@INC contains: /usr/local/lib/perl5/5.8.8/i686-linux /usr/local/lib/perl5/5.8.8 /usr/local/lib/perl5/site_perl/5.8.8/i686-linux /usr/local/lib/perl5/site_perl/5.8.8 /usr/local/lib/perl5/site_perl .) at /virtual/サーバーID/public_html/script.cgi line 11, line 855.


■cronジョブのお知らせメールがいらない場合
シェルスクリプトの設定項目に >/dev/null 2>&1 を追記します。
以下画面参照

佐渡の洋食屋店長のブログ-cron設定

こんな感じです。
いろいろと設定がややこしいですが、一度設定しておけば、あとは機械まかせ。
便利ですよね。CORESERVERはちょっと他のレンタルサーバーと比べて、初心者にはハードルが高いかな?という印象ですが、一日のメール送信数等の制限が他と比べると制限がゆるいので、非常にありがたいです。

本来であれば、専用サーバーを借りなければいけないところを、CORESERVERのおかげで経費削減できました♪


この記事が参考になったらシェアしてください。
↓↓


このブログの更新情報をFacebookで購読できます。
↓↓


ブログ読者登録はこちらです。
↓↓
読者になる