GNU/Linux >> Linux の 問題 >  >> Linux

tput:$TERM の値がなく、CRON プロセスによって記録された -T 指定されたエラーがありません

スクリプト内の何かが tput を呼び出しています バイナリ。 tput $TERM の検査を試みます 変数を使用して現在の端末を決定し、正しい制御シーケンスを生成できるようにします。 cron の実行中に端末がないため、tput からそのエラーが発生します .

TERM を手動で割り当てることもできます cron ジョブへの値 (おそらく dumb またはそれに似たもの) または (これはおそらくより良い解決策です) tput を呼び出しているものを見つけることができます その呼び出しを削除してください。


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

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

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

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

MAILTO=""
TERM=xterm

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

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


Linux
  1. 効果的なプロセス管理のための8つのLinuxコマンド

  2. BashForループガイドと例

  3. プロセスIDの最大値は?

  1. Tput:$ termの値がなく、-tが指定されていませんか?

  2. IMAP用のOutlookおよびその他のメールクライアントの構成

  3. ライセンスエラーを防ぐために、Windows2008およびWindows2008R2のクラウドサーバーにライセンスサービスをインストールします

  1. 20ポストフィックスインタビューの質問と回答

  2. Postfixをインストールして設定する方法

  3. 同じイメージに対して Windows、Linux、および Mac で作成された異なるハッシュ値