я проверилэтот вопросотносительно сбоев crontab.
Я запускаю эту команду, чтобы захватить htop
команду и создать ее снимок в формате html (вывод htop в файл, удобочитаемый для человека):
/bin/echo q | /usr/bin/htop | /usr/bin/aha --black --line-fix > /tmp/htop.html
Эта команда работает правильно на терминале и не зависит от каких-либо переменных окружения. Когда я добавляю эту команду как cronjob, она просто генерирует пустой html-файл:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!-- This file was created with the aha Ansi HTML Adapter. http://ziz.delphigl.com/tool_aha.php -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="application/xml+xhtml; charset=UTF-8" />
<title>stdin</title>
</head>
<body style="color:white; background-color:black">
<pre>
</pre>
</body>
</html>
Есть ли причина, по которой он не может захватить вывод через cron
?
решение1
htop
Для вывода любых данных необходимо TERM
задать переменную, например , для этого просто установите эту переменную в строке cron, например:xterm
xterm
@hourly echo q|TERM=xterm htop|aha --black --line-fix >/tmp/htop.html
Если вы хотите проверить, выполняется ли командаДействительноне зависит ни от каких переменных окружения – которые часто приводят к проблемам с cron
, см. вопрос, на который вы ссылались – используйте env -i
для «запуска с пустого окружения»:
$ env -i htop
Error opening terminal: unknown.
В сочетании с ' diff
s cron
и средой вашего терминала это хороший способ проверить, какие переменные нужны команде. htop
Фактическитолькопотребности TERM
:
env -i TERM=xterm htop