ファイルがcrontabによって自動的に実行されるようにしています。
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
*/5 * * * * php /path/to/script
このファイルを「 prod.cron
に /etc/cron.d
フォルダが、それを実行するようには見えない」自分の。スクリプトをコマンドラインから直接実行しても問題ないことがわかりますが、cron.d内のファイルが自動的に検出されるかどうか、またはそれらを初期化するために他に何かする必要があるかどうかわかりません。
回答:
回答№1は0そのディレクトリに注意してください /etc/cron.d
パッケージで使用することを意図しています、crontabはユーザーのcrontabにインストールされるべきです。それが言われている、次をチェックしてください クーロンの問題:
- スクリプトに実行権限がありません。パーミッションを付与するには、chmod a + xを使用してください。
- php、perl、その他のスクリプトの場合言語、通訳者またはプログラムへのパスが正しくありません。実際のパスを常に提供する cronで実行するコマンドを定義している間のインタプリタ見つけるために プログラムがある場所には、whereisコマンドを使用してください。例えば phpの場合、whereis phpです。 perl、whereis phpなどのために。
- 実行に必要な環境変数スクリプトは利用できません。 cronはユーザーの同じ環境を使用しません。 コマンドの実行中は独自の環境を使用します。だから変数 .loginまたは.profileで定義されているものは、彼には見えません。最も一般的な 問題は似ていないPATH変数に関連しています。
回答№2の場合は0
cronファイルには2つの種類があります。
の下にインストールされたファイル /etc/cron.d
は システム cronファイル各行の6番目のフィールドは、コマンドを実行するために使用されるユーザーアカウントである必要があります。他のファイルを見る /etc/cron.d
たとえば。
非システムcronファイルには、ジョブの実行時期を指定するための通常の5つのフィールドがあり、その後に実行するコマンドが続きます。彼らは「 crontab
コマンドを実行するユーザーアカウントによって実行されます。これは 多分 あなたが使いたいもの
どちらでも追加 root
関連行の6番目のフィールドとして、または実行 crontab prod.cron
rootとして(またはコマンドを実行するアカウントとして)
そしてもちろん、 php
コマンドは指定された中にあります $PATH
.