コントロールパネルからcron設定に入ってGUIで設定する
去年登録したcron設定はこれでいまも問題なく動いてるんだけど
/usr/local/bin/php /home/アカウント名/www/abc/cron.php
今回同様に追記したら動かなかった。
pythonの外部モジュールを利用するプログラムをcronで実行するときは、環境変数の値設定が必要ってのが要点。
で、これら実行したら動いた。
・cronの書き方変更
cd /home/アカウント名/www/abc ; /usr/local/bin/python cron.py
cd 動作させるファイルまでのパス ; プログラムまでのパス 動作させるファイル名
・動作させるファイルに実行権限与える 755 または 705
・外部モジュール読み込むファイルならそれらのパーミッションも変更
・コントロールパネル – cron設定画面下の環境変数 環境変数の値のところを追加
環境変数 PYTHONPATH
環境変数の値 /home/アカウント名/lib/python
さくらインターネットのよくある質問にこんなこと書いてあった
【動作しない例】 /usr/local/bin/php /home/アカウント名/プログラム名
【動作する例】 cd /home/アカウント名/www/programs ; /usr/local/bin/php プログラム名
「さくらのレンタルサーバ」や「さくらのマネージドサーバ」ではCGIプログラムやCRONの実行はユーザ権限にて行われます。
2.1. ファイル、ディレクトリの設定
CGIの拡張子 | .cgi |
---|---|
PHPの拡張子(※1) | .php |
プログラムを設置するディレクトリ(フォルダ) | ドキュメントルート(/home/アカウント名/www/)以下であれば不問 |
ファイルパーミッション | 755 または 705 のいずれか |
ディレクトリパーミッション | 755 または 705 のいずれか |
cgi-binディレクトリ | 不要 |
.htaccessの設定 | 不要 |
推奨するファイルロック関数 | flock |
※1?スタンダードプラン以上で利用できます。
2.2. プログラムのコマンドパス
perl | /usr/bin/perl |
---|---|
ruby | /usr/local/bin/ruby |
php(※1) | /usr/local/bin/php |
Python | /usr/local/bin/python |
sh | /bin/sh |
csh | /bin/csh |
sendmail | /usr/sbin/sendmail |
gcc | /usr/bin/gcc |
gzip | /usr/bin/gzip |
zip | /usr/local/bin/zip |
unzip | /usr/local/bin/unzip |
convert | /usr/local/bin/convert |
nkf | /usr/local/bin/nkf |
uuencode | /usr/bin/uuencode |
uudecode | /usr/bin/uudecode |
procmail | /usr/local/bin/procmail |
※1?スタンダードプラン以上で利用できます。
引用元: さくらレンタルサーバ CGI・PHP・SSI について
ちなみに6件以上のcrom登録はGUIからはできないからCUIから。
cron内容の参照:
crontab -l
cronの編集
crontab -e
あとはviで記述。書き方は下記。
フィールド
指定できる値 分 0-59, * 時間 0-23, * 日 0-12, * 月 0-12, * 曜日 0-7, *
設定内容 入力例 分 時 日 月 曜日 毎時 0 分に実行する 0 * * * * 2 時間おきに実行する * */2 * * * 0 時と12 時に実行する * 0,12 * * * 0 時から 12 時までの毎時 15 分に実行する 15 0-12 * * * 毎月 1 日の 0 時 0 分に実行する 0 0 1 * * 毎月 1 日または毎週金曜日の 23 時 59 分に実行する 59 23 1 * 5
引用元: くらレンタルサーバでのcronの設定方法 .
コメント