Команда перестала работать в crontab, но работах в терминале

Я проверил этот вопрос относительно 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?

0
задан 8 June 2018 в 02:59

1 ответ

htop требуется переменная TERM, установленная, например, на. xterm для вывода любых данных, поэтому просто установите эту переменную для xterm в строке cron, например:

@hourly echo q|TERM=xterm htop|aha --black --line-fix >/tmp/htop.html

Если вы хотите проверить, действительно ли команда не делает ' t зависят от любых переменных среды - которые часто приводят к проблемам с cron, см. вопрос, который вы связали - используйте env -i, чтобы «начать с пустой среды»:

$ env -i htop
Error opening terminal: unknown.

в сочетании с [ 119] из cron и среды вашего терминала - это хороший способ проверить, какие переменные нужны команде. htop на самом деле только нуждается в TERM:

env -i TERM=xterm htop
2
ответ дан 29 October 2019 в 04:05

Другие вопросы по тегам:

Похожие вопросы: