Ich versuche, ein Python-Skript in Crontab auszuführen.Python-Skript-Ausführung in crontab fehlgeschlagen während lokale treffen()
5 0 * * * python /home/hadoop/import_openapp.py >> /home/hadoop/openapp.out 2>&1
Das Python-Skript ist so etwas wie unten:
import sys
import datetime
from fabric.api import local
ystd = datetime.date.today() - datetime.timedelta(days=1)
c = ystd.strftime('%Y-%m-%d')
print(c)
print('Start to format file ...')
......
print('Start to upload on HDFS ...')
local("/home/hadoop/hadoop/bin/hadoop fs -put " + finalfile + " /user/hadoop/yunying/openapp")
print('Start to upload on MaxCompute ...')
......
Wenn die crontab aufgerufen wird, die Protokolldatei ist wie:
2016-07-01
Start to format file ...
Start to upload on HDFS ...
[localhost] local: /home/hadoop/hadoop/bin/hadoop fs -put /data/uxin/nsq_client_active_collect/hadoop/openappfinal.log /user/hadoop/yunying/openapp
Und dann wird der Prozess vorbei ist. Ich kann es nicht finden in ps -ef|grep python
Warum kommt es zu einem Ende beim Treffen local()
?
Alles, was von Cron ausgeführt wird, wird mit einer ziemlich minimalen Umgebung ausgeführt, also wenn Sie sich auf einen optimierten PYTHONPATH verlassen, ist das wahrscheinlich der Grund. – Vatine
Haben Sie versucht, den Befehl/home/hadoop/hadoop/bin/hadoop fs -put /data/uxin/nsq_client_active_collect/hadoop/openappfinal.log/user/hadoop/yunying/openapp von der Shell zu starten? Wird Cron auf die Crontab des Benutzers gesetzt? Irgendwelche Berechtigungsprobleme? – BangTheBank