私はcrontabでpythonスクリプトを実行しようとしています。 crontabファイルが呼び出されるとlocal()を会議中にpythonスクリプトを実行できませんでした
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 ...')
......
、ログファイルのようなある:
5 0 * * * python /home/hadoop/import_openapp.py >> /home/hadoop/openapp.out 2>&1
Pythonスクリプトは、以下のようなものである
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
そして、プロセスは終了します。私はそれを見つけることができませんps -ef|grep python
local()
の間に終わるのはなぜですか?
cronから実行されるものはすべて、最小限の環境で実行されるため、調整されたPYTHONPATHを使用することに頼っているのであれば、それはおそらく理由です。 – Vatine
シェルから/ home/hadoop/hadoop/bin/hadoop fs -put /data/uxin/nsq_client_active_collect/hadoop/openappfinal.log/user/hadoop/yunying/openappコマンドを起動しようとしましたか?それは正しいユーザーのcrontabに設定されていますか?権限の問題はありますか? – BangTheBank