我试图在crontab中运行python脚本。
jQuery(function () {
var myStartDate = $('#myStartDate').val();
jQuery('#startDate').datetimepicker({
locale: 'de',
format: 'dd, DD.MM.YYYY, HH:mm',
minDate: moment(),
});
});
python脚本如下所示:
5 0 * * * python /home/hadoop/import_openapp.py >> /home/hadoop/openapp.out 2>&1
调用crontab时,日志文件如下:
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 ...')
......
然后,过程结束了。我在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
时结束?
答案 0 :(得分:0)
PYTHONPATH可能无法正确设置CRON用于运行脚本的用户。打印出调试文件的路径以进行检查:
<div style="...">
尝试添加以下行:
with open('/path/to/debug_file.txt', 'wt') as f:
f.write(str(sys.path))
导入本地
之前您还可以使用
动态获取正在运行的文件的位置sys.path.append("/path/to/fabric.api")
这将允许您在需要时使用相对路径