GNU/Linux >> LINUX-Kenntnisse >  >> Linux

tput:Kein Wert für $TERM und kein -T angegebener Fehler, der vom CRON-Prozess protokolliert wurde

Etwas im Skript ruft tput auf binär. tput versucht, $TERM zu inspizieren -Variable, um das aktuelle Terminal zu bestimmen, damit es die richtigen Steuersequenzen erzeugen kann. Es gibt kein Terminal, wenn Cron läuft, also erhalten Sie diesen Fehler von tput .

Sie können entweder manuell einen TERM zuweisen Wert an den Cronjob (wahrscheinlich dumb oder so ähnlich) oder (und das ist wahrscheinlich die bessere Lösung) Sie können herausfinden, was tput aufruft und diesen Anruf entfernen.


Der Cron-Daemon wird vom Benutzer „root“ in seiner eigenen Shell ausgeführt. Standardmäßig hängt cron eine Systemmail an, die an den Benutzer gesendet wird, der das Skript ausführt (deshalb sehen Sie den Absender als 'root' in der Systemmail). Der 'Benutzer' ist der Benutzer, als der Sie beim Setzen der Crontab angemeldet waren. Die Mail enthält Konsolen- und Fehlermeldungen. Unter Ubuntu ist die Maildatei unter /var/mail/<username> sichtbar .

Wenn nein $TERM Variable gesetzt ist, gibt Cron ein tput: No value for $TERM and no -T specified aus Fehler in der Maildatei. Um diese Fehler zu stoppen, setzen Sie den $TERM Variable mit TERM=dumb (oder ein anderes verfügbares Terminal in Ihrem System, wie xterm ) in der Crontab. Die toe Der Befehl zeigt Ihnen die terminfo-Definitionen auf dem aktuellen System. Wenn Ihnen dieser Befehl fehlt, können Sie die Rohdaten in /usr/share/terminfo sehen auf den meisten Linux-Systemen.

Auch wenn Sie die Fehler behoben haben, erhalten Sie möglicherweise immer noch angehängte Systemmails mit Konsolenmeldungen. Diese Datei füllt sich im Laufe der Zeit wie ein Protokoll, daher möchten Sie diese Nachrichten möglicherweise stoppen. Um die Mail des Cron-Systems zu stoppen, setzen Sie den MAILTO Variable mit MAILTO=""

Ihre Crontab könnte also so aussehen:

MAILTO=""
TERM=xterm

* * * * * sh /path/to/myscript.sh

Sie können die Crontab (für den Benutzer, als der Sie angemeldet sind) mit 'crontab -l' anzeigen.


Linux
  1. Der maximale Wert der Prozess-ID?

  2. Tput:Kein Wert für $term und kein -t angegeben?

  3. Mail-Cron-Ausgabe nur, wenn Git einen echten Fehler auslöst?

  4. Bash-Shell-Skript - Suchen Sie nach einem Flag und holen Sie sich seinen Wert

  5. Wie wird die Prozesspriorität berechnet?

3 Tipps zur Verbesserung der Linux-Prozessleistung mit Priorität und Affinität

Cron-Jobs und Crontab unter Linux erklärt

Cron-Jobs für Linux einrichten und die 10 besten Online-Tools für Cron-Jobs

Wie man Cron-Jobs für ein Linux-System über PHP ausführt und auflistet

Wie bekomme ich nur den Benutzer, die PID und den Befehl, der für einen bestimmten Prozess ausgeführt wird? (Ubuntu 11.10)

Deaktivieren Sie Fehler- und Zugriffsprotokolle für einen virtuellen Host