ich habe kontrolliertdiese Fragebezüglich Crontab-Fehlern.
Ich führe diesen Befehl aus, um den htop
Befehl zu erfassen und einen Snapshot davon im HTML-Format zu erstellen (htop-Ausgabe in eine menschenlesbare Datei):
/bin/echo q | /usr/bin/htop | /usr/bin/aha --black --line-fix > /tmp/htop.html
Dieser Befehl funktioniert auf dem Terminal einwandfrei und ist nicht von Umgebungsvariablen abhängig. Wenn ich diesen Befehl als Cronjob hinzufüge, wird einfach eine leere HTML-Datei generiert:
<?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>
Gibt es einen Grund, warum die Ausgabe nicht über erfasst werden kann cron
?
Antwort1
htop
muss die TERM
Variable zB gesetzt sein, xterm
um Daten auszugeben, also setzen Sie diese Variable einfach xterm
in Ihrer Cron-Zeile, zB:
@hourly echo q|TERM=xterm htop|aha --black --line-fix >/tmp/htop.html
Wenn Sie testen möchten, ob ein BefehlWirklichhängt nicht von Umgebungsvariablen ab – was oft zu Problemen führt cron
, siehe die Frage, die Sie verlinkt haben –, verwenden Sie, env -i
um „mit einer leeren Umgebung zu beginnen“:
$ env -i htop
Error opening terminal: unknown.
In Kombination mit den diff
of -Befehlen cron
und der Umgebung Ihres Terminals ist dies eine gute Möglichkeit, zu testen, welche Variablen ein Befehl benötigt htop
.nurBedürfnisse TERM
:
env -i TERM=xterm htop