Offensichtlich lädt cron das Bash-Profil nicht, also müssen Sie einen Wrapper schreiben.
Schreiben Sie also einen Bash-Wrapper, der die benötigten Variablen exportiert und das Skript aufruft. Rufen Sie dann diesen Wrapper von crontab aus auf. Wenn das funktioniert, wissen Sie, dass Ihre Variablen für den Benutzer, dessen Crontab Sie bearbeitet haben, nicht richtig exportiert wurden.
Hinweis:Sie können sie in /etc/bashrc
hinzufügen und es ist dann für alle Benutzer vorhanden, wenn Sie Root-Zugriff haben.
Sie können auch einen generischen Wrapper erstellen und Cron-Dinge durch den Wrapper senden.
my_bash_wrapper.sh
#!/bin/bash
. ~/.bash_profile
"$0"
in cron aufrufen:
0 1 * * * /my/loc/my_bash_wrapper.sh my_python_script arg1 arg2