Überprüfen Sie, ob die Datei crontab ausgeführt wird

Überprüfen Sie, ob die Datei crontab ausgeführt wird

Ich habe Crontab-Aufgaben so eingerichtet, dass sie jede Minute ausgeführt werden.

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

Ich sehe das Protokoll in der Datei 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)

Noch,nichts wird in die DB geschriebenwie die Datei terra_swap_api.phpes tun sollte. Irgendwelche Vorschläge, warum? Gibt es eine Möglichkeit zu überprüfen, ob die Datei tatsächlich ausgeführt wird?

Wenn ich dasselbe Skript in der CLI ausführe, funktioniert es perfekt: php terra_swap_api.php

Antwort1

Sie können nicht einfach sudo in cron verwenden, da nach dem sudo-Passwort gefragt wird. Sie müssten für diesen Befehl ein passwortloses sudo einrichten.

Da sich die PHP-Datei im Verzeichnis /root befindet (beachten Sie, dass dies ein Sicherheitsrisiko darstellt), können Sie die Crontab als Root ( sudo crontab -e) installieren und die Zeile dort einfügen (ohne sudo).

Wenn für Ihr Skript keine Root-Befugnisse erforderlich sind, können Sie es ohne sudo ausführen. Sie müssten die Dateien jedoch an einen lesbaren Speicherort verschieben, da /root dem Root-Benutzer gehört und auf ihn beschränkt ist.

verwandte Informationen