檢查檔案 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 目錄中(請注意,這是一個安全問題),因此您可以將 crontab 安裝為 root ( sudo crontab -e) 並將該行放入其中(無需 sudo)。

如果您的腳本不需要 root 權限,您可以在沒有 sudo 的情況下運行,但您必須將檔案移至可讀位置,因為 /root 屬於 root 使用者並僅限於 root 使用者。

相關內容