Ich versuche, Cron dazu zu bringen, die richtigen Pfade einzugeben. Wenn ich ein Python-Skript über die Shell ausführe, läuft das Skript einwandfrei, da es die in bashrc festgelegten PATHs verwendet. Wenn ich jedoch cron verwende, werden nicht alle PATHs über bashrc verwendet. Gibt es eine Datei, in die ich die PATHs für cron wie bashrc eingeben kann, oder eine Möglichkeit, die PATHs von bashrc aus aufzurufen?
Es tut mir leid, ich glaube nicht, dass ich das richtig formuliert habe. Ich kann das richtige Skript ausführen (was bedeutet, dass der Pfad zum Skript in crontab hier nicht das Problem ist). Nur wenn dieses Skript ausgeführt wird, führe ich einen Build aus und dies verwendet das Pfade setzen ein .bashrc
. Wenn ich das Skript beim .bashrc
Anmelden ausführe , werden die Pfade eingezogen. Da cron nicht in einer Shell ausgeführt wird, wird es nicht eingezogen .bashrc
. Gibt es eine Möglichkeit, dies zu erreichen, ohne einen Bash-Script-Wrapper schreiben zu müssen?
source /etc/profile
: Es sollte essen .bashrc
und viele andere potenziell fehlende Dinge für Sie. Explizites Profil-Sourcing wird sehr nützlich, wenn einige Skripte "eigenständig" ausgeführt werden sollen. Es schützt auch vor seltsamen Umgebungen und so ...
sh
funktionieren von crontab aufgerufene Skripte. Sie können bestätigen, dass der Pfad aktualisiert wird, indem Sie einen Job wie hinzufügen * * * * * echo $PATH > ~/crontab_path.txt
und die Datei nach einer Minute überprüfen.