Я проверяю память моего 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