检查文件 crontab 是否运行

检查文件 crontab 是否运行

我已经设置了每分钟执行一次的 crontab 任务。

* * * * * 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应该做的那样。有什么建议吗?有什么方法可以检查文件是否实际执行?

当我在 CLI 中运行相同的脚本时,它运行完美:php terra_swap_api.php

答案1

您不能简单地在 cron 中使用 sudo,因为它会要求输入 sudo 密码。您必须为该命令设置无密码 sudo。

由于 php 文件位于 /root 目录中(请注意,这是一个安全问题),您可以以 root 身份安装 crontab(sudo crontab -e)并将该行放入其中(无需 sudo)。

如果您的脚本不需要 root 权限,则可以不使用 sudo 运行,但您必须将文件移动到可读位置,因为 /root 由 root 用户拥有且仅限 root 用户使用。

相关内容