PHPスクリプトを1日1回、php5を使用してubuntu 13.10サーバーで実行しようとしています。
このコマンドに対して、crontab -l
で検証されたajentiコントロールパネルを介して、cronジョブをセットアップしています。
php /path/script.php site_id=2 table=clicks
私はそれを実行させようとしている間に時間を調整してきましたが、基本的には午前2時に実行したいと思います。
0 2 * * *
スクリプトを直接実行しようとしましたが、/usr/bin/php
、/usr/bin/php5/
、およびphp
を使用して実行しましたが、syslog、またはApacheログまたはエラーファイル(トレースレベル8 )
午前2時に実行しようとしていたので、そのように設定しましたが、端末でdate
を実行すると、現在の時刻が
2014年2月6日07:44:29 UTC 2014
私もcronジョブを実行しようとしましたが、何も実行されません。
何か案は? syslogのほかに、cronジョブのubuntuロギングがありますか?
また、それは引数を送信する適切な方法ですか?スクリプトは、Webベースのスクリプトとは異なる方法でそれらを受け入れる必要がありますか?
まず、コマンドラインからコマンドが正しく機能することを確認します。
/usr/bin/env php /path/to/script.php arguments
次に、cron
が実行されていることを検証します。
ps auxw | grep cron
のような行があるはずです(^
鉱山のハイライト)
root 1537 0.0 0.0 19112 336 ? Ss 2012 1:03 cron
^^^^ ^^^^
cron
が正しく実行されている場合、syslogから他のcronメッセージを確認します。
Sudo zgrep CRON /var/log/syslog*
デフォルトでは、さまざまなタスクがroot
として実行され、/etc/cron.daily
、/etc/cron.weekly
などのフォルダーで構成されます。出力がない場合は、cronが正しく実行されていません。で再起動してみてください
Sudo /etc/init.d/cron restart
エラーメッセージの/var/log/syslog
の内容を確認し、手順1に再度進みます
cron
が正常に実行されている場合は、crontab
にそのコマンドがあるユーザーのメールボックスのチェックに進みます。 USERNAMEを置き換えます。
Sudo -u USERNAME mail
またはSudo -u USERNAME less/var/mail/USERNAME
Cronコマンドの実行に失敗した場合、そこに電子メールを送信する必要があります。
php
だけでなく、/usr/bin/env php /path/to/script.php
をコマンドとして使用する必要があります。 /usr/bin/env
は適切なphp
バイナリを自動的に選択します。
引数については、いいえ、引数を個別に読む必要があります。これはこのサイトのトピックではありませんが、 このマニュアルページ をご覧ください。これらの引数は$argv
から読み取ることができます。 Webサーバーを介して呼び出されるスクリプトと同じようには機能しません。