2015-04-03 94 views
0

我正在使用Linux Debian,Mosquitto 1.3.5和Python 2.7.9脚本。在python代码中执行的crontab中的mosquitto_pub命令

如果我在终端运行Python脚本(使用我在crontab中编写的相同命令),则会运行mosquitto_pub命令。但它不执行使用下面的cron:

2,12,22,32,42,52 * * * * /usr/bin/python /home/user/ma.py 

这个cron将启动脚本,将执行脚本(写一些数据到CSV文件)的第一部分,但不是mosquitto_pub命令。我的Python脚本的

部分:

liv = str(190 + float(parser.data[157])) 
    try: 
     ssl = '/home/user/file.pem' 
     base = "mosquitto_pub -h host -p 8883 -t measures -q 2 --cafile " + ssl 
     epoch = datetime.utcfromtimestamp(0) 
     delta = datetime.strptime(dttime, "%Y-%m-%dT%H:%M:%SZ") - epoch 
     ds = delta.total_seconds() 
     mqttStr = base + " -m 'FILE_LL," + str(int(ds)) + ',' + liv + "'" 
     subprocess.Popen(mqttStr, shell=True) 
    except: 
     print "It was not possible to send your data via mqtt.", sys.exc_info()[0], datetime.utcnow() 

我试图使用os.system,subprocess.call和subprocess.Popen,但该命令没有启动。

在此先感谢您的帮助。

回答

1

好吧,我解决了issue.I不得不使用的完整路径mosquitto_pub:

/usr/local/bin/mosquitto_pub