0

VestaCP の cron ジョブで実行しようとしている PHP スクリプトをいくつか作成しましたが、実行されていないようです。ここと VestaCP フォーラムで、エラーの特定に役立つ他のスレッドを検索しようとしましたが、解決策が見つかりませんでした。

サーバーシステム:

  • CentOS 7.4
  • ベスタ 0.9.8-22

リンクに直接アクセスして、PHP スクリプトをテストしました。それらはすべてうまく機能します。しかし、cron ジョブが実行されておらず、その理由がわかりません。

これらの cron ジョブによって生成されたエラー メッセージやログを見つけることができませんでした ("> /dev/null 2>&1" を削除しても)。しかし、私は間違った場所を探していたかもしれません。

すべての cron ジョブは、VestaCP cron インターフェイスを介して追加されています。

exim、dovecot、clamd、および spamassassin を無効にしました。また、cron パネルで通知をオフにしました。それが関連しているかどうかはわかりません。

/var/spool/cron/admin [編集されたドメイン名] からコピー:

15 02 * * * sudo /usr/local/vesta/bin/v-update-sys-queue disk

10 00 * * * sudo /usr/local/vesta/bin/v-update-sys-queue traffic

30 03 * * * sudo /usr/local/vesta/bin/v-update-sys-queue webstats

*/5 * * * * sudo /usr/local/vesta/bin/v-update-sys-queue backup

10 05 * * * sudo /usr/local/vesta/bin/v-backup-users

20 00 * * * sudo /usr/local/vesta/bin/v-update-user-stats

*/5 * * * * sudo /usr/local/vesta/bin/v-update-sys-rrd

15 6 * * * sudo /usr/local/vesta/bin/v-update-sys-vesta-all

01 4 * * * sudo /usr/local/vesta/bin/v-update-letsencrypt-ssl

*/5 * * * * wget -q -O - "https://testing.example.com/cli/new-projects" > /dev/null 2>&1

*/5 * * * * wget -q -O - "https://example.com/cli/new-projects" > /dev/null 2>&1

30 10 * * * wget -q -O - "https://example.com/cli/project-expiration" > /dev/null 2>&1

*/5 * * * * sudo /usr/local/vesta/bin/v-update-sys-queue letsencrypt

0 10 * * * wget -q -O - "https://testing.example.com/cli/project-expiration" > /dev/null 2>&1

*/2 * * * * wget -q -O - "https://testing.example.com/cli/email-sender" > /dev/null 2>&1

*/2 * * * * wget -q -O - "https://example.com/cli/email-sender" > /dev/null 2>&1
4

1 に答える 1

0

Ubuntuでも同じ問題がありました。

問題は、VestaCP コントロール パネルから作成された cron ジョブがユーザー用に作成され、コマンドの先頭に sudo があるにもかかわらず実行されないことでした。

/tmp/log/syslog ファイルで確認できるので、呼び出されているようです。ただし、エラーは表示されません。しかし、何らかの理由で、コマンドは実行されません。

cron ステータスを確認するためのいくつかの簡単なコマンドを次に示します。

Cron サービスが実行されているかどうかを確認します。

pgrep cron

数値が返された場合、サービスは実行されています。それ以外の場合は Cron ステータスを確認します。

systemctl status cron

現在の cron ファイルを確認します。

crontab -l

cronjob ファイルを編集します。

crontab -e

解決策の 1 つは、ターミナルから root ユーザーの cron ジョブを作成することです。他のユーザーには試していません。root ユーザー用に作成された cron ジョブは問題なく実行されます。

于 2019-01-18T07:27:33.933 に答える