Команда mosquitto_pub в коде Python не выполняется в crontab

Я работаю с Linux Debian, Mosquitto 1.3.5 и скриптом Python 2.7.9.

Если я запущу скрипт 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, но команда не запускается.

Заранее благодарю за любую помощь.


person spookyisland    schedule 03.04.2015    source источник
comment
На странице документации отсутствует один шаг для Ubuntu: sudo apt-get install mosquitto-clients для использования mosquitto_pub и mosquitto_sub   -  person manasouza    schedule 24.03.2018


Ответы (1)


хорошо, я решил проблему. Мне пришлось использовать полный путь к mosquitto_pub:

/usr/local/bin/mosquitto_pub
person spookyisland    schedule 15.04.2015