Сценарий Python имеет проблему с преобразованием int () с помощью crontab - PullRequest
1 голос
/ 21 мая 2019

Я проверяю память моего Raspberry Pi. Все в порядке.

Но когда я хочу запустить это каждую минуту, crontab говорит, что есть ошибка для преобразования строки в int

ValueError: недопустимый литерал для int () с основанием 10: ''

Мой script.py :

intmemused = 0
cmd = "top -n1 | grep 'Mem :'| awk '{print $6;}'"
output = Popen(cmd,shell=True, stdout=PIPE)
memused = output.communicate()[0].strip()
memused = str(memused.decode("utf-8"))
print(memused) |-----------> 589020
intmemused = int(memused) #Error when crontab execute my scrypt
mem = intmemused * 100
mem = float(mem) / float(memtot)
mem = 100 - float(mem)
mem = round(mem,2)



Мой crontab :
*/1 * * * * /home/dietpi/<b>info.sh</b> 2>/home/dietpi/marseille.log

Мой info.sh :

#!/bin/bash
/usr/bin/python3 /home/dietpi/script.py



marseille.log он создает для регистрации ошибок при выполнении crontab и имеет:

TERM environment variable not set.
Traceback (most recent call last):
File "/home/dietpi/config", line 56, in <module>
    intmemused = int(memused)
ValueError: invalid literal for int() with base 10: ''

Когда я смотрю на эту ошибку, я верил memused пусто, но нет. Печать предоставлена ​​ 589020
Я считал пустой символ, но я использовал .strip ()
Я полагал, что переменная окружения TERM не установлена. это проблема, но с этой командой set | grep TERM есть хороший ответ TERM = xterm

Я не понимаю, почему он работает с python3, а не crontab

Вы можете мне помочь?

Большое спасибо!

MaxKweeger

...