25

CRONによって実行されるシェルスクリプトがあります。シェル スクリプトは、FTP サーバーからファイルをダウンロードする Python スクリプトを実行し、それらのファイルに対して Java ログ プロセッサを実行します。エラーがなくてもCRONメールを受け取り続けることを除いて、プロセスは問題なく実行されます. 少なくとも、間違いはないと思います。cron メールには 2 行あり、そのうちの 1 行が

tput: No value for $TERM and no -T specified

少し調べたところ、$TERM 変数の設定に関係があることがわかりました。どうすればいいのかわかりません。どんな助けでも大歓迎です。ありがとう!

4

3 に答える 3

14

cron デーモンは、独自のシェルで「root」ユーザーによって実行されます。デフォルトでは、cron は、スクリプトを実行しているユーザーに送信されるシステム メールを追加します (これが、システム メールで送信者が「root」と表示される理由です)。「ユーザー」は、crontab を設定するときにログインしたユーザーです。メールには、コンソールとエラー メッセージが含まれます。Ubuntu では、メール ファイルは で表示できます/var/mail/<username>

変数が設定されていない場合$TERM、cron はtput: No value for $TERM and no -T specifiedメール ファイルにエラーを出力します。これらのエラーを停止するには、crontab で(またはシステムで使用可能な別の端末 ( など)$TERMを使用して) 変数を設定します。このコマンドは、現在のシステムの terminfo 定義を表示します。そのコマンドがない場合は、ほとんどの Linux システムで生データを表示できます。TERM=dumbxtermtoe/usr/share/terminfo

エラーを停止しても、コンソール メッセージが添付されたシステム メールを受信する場合があります。このファイルは時間の経過とともにログのようにいっぱいになるため、これらのメッセージを停止することをお勧めします。cron システム メールを停止するには、次MAILTOを使用して変数を設定します。MAILTO=""

したがって、crontab は次のようになります。

MAILTO=""
TERM=xterm

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

「crontab -l」を使用して、(サインインしているユーザーの) crontab を表示できます。

于 2016-03-05T00:32:28.190 に答える