2012.07.14
さくらインターネットレンタルサーバでcron設定をする
コントロールパネルから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の設定方法 .