2016-07-01 12 views
0

Ich bin nicht sicher, warum dies geschieht, ich momentan Diese Zahlung soll in meinem crontab -eaktualisiert Pip-Paket in virtuellen env über cron

*/30 * * * * cd /home/www/ && source env/bin/activate && pip install --upgrade youtube_dl >/dev/null 2>&1 

Das Problem, das ist eigentlich nicht das Skript zu aktualisieren. Wenn ich nur

cd /home/www/ && source env/bin/activate && pip install --upgrade youtube_dl >/dev/null 2>&1 

im Terminal laufen es aktualisiert, aber wenn es über Cron läuft es nicht.

Soll ich es in ein Bash-Skript aufteilen, um den Erfolg zu garantieren? Ich hatte den Eindruck, wenn ich den Befehl im Terminal mit Erfolg ausführen könnte, sollte es auch mit Erfolg auf crontab ausgeführt werden.

+0

Haben Sie diese schon überprüft? http://askubuntu.com/questions/23009/reasons-why-crontab-does-not-work – Blue

+0

ja, überprüft diese. Berechtigungen sind gesetzt, andere crontab funktioniert gut. Wenn ich das virtuelle Env herausnehme, läuft es gut und aktualisiert, gerade scheint, wenn unter der virtuellen Umgebung zu sein – nadermx

+0

Die, die über volle Wege für Kommandos und sh anstelle von bash haben, können zutreffen – Blue

Antwort

1

Cron verwendet /bin/sh als seine Shell, nicht bash. Sie rufen source, das ist ein Bash-Befehl.

Hinweis: Sie können source durch . ersetzen, und beide Shells erkennen den Befehl.