ファイルchrontabが実行されているかどうかを確認します

0
2022.01.04

毎分実行されるcronabタスクを設定しました。

 * * * * * sudo /usr/bin/php /root/scrapers/terra_plf/terra_swap_api.php

そのログがvar / log / syslogファイルに表示されます。

 Jan  3 15:14:01 clearthefog CRON[26579]: (root) CMD (/usr/bin/php     /home/admin/scrapers/terra_plf/terra_swap_api.php)
Jan  3 15:15:01 clearthefog CRON[26623]: (root) CMD (sudo /usr/bin/php /root/scrapers/terra_plf/terra_swap_api.php)

それでも、ファイルterra_swap_api.phpが行うべきように、DBには何も書き込まれません。なぜ何か提案はありますか?ファイルが実際に実行されているかどうかを確認する方法はありますか?

CLIで同じスクリプトを実行すると、完全に機能します:php terra_swap_api.php

回答
1
2022.01.06

cronでsudoを実行することはできません。これは、sudoパスワードを要求するためです。そのコマンドにはパスワードなしのsudoを設定する必要があります。

phpファイルは/ root dirにあるので(セキュリティ上の懸念があることに注意してください)、crontabをroot( sudo crontab -e )としてインストールし、そこに行を入れることができます(sudoなし)。

スクリプトがroot権限を必要としない場合は、sudoなしで実行できますが、/ rootが所有され、rootユーザーに制限されているため、ファイルを読み取り可能な場所に移動する必要があります。