2015-04-03 93 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