2017-09-03 10 views
0

現在出力をログファイルに書き込むスクリプトを変更したいと思います。スクリプト出力をsyslogに送る方法

~/bin/setBatteryProtect.sh >> /tmp/battery.log 

出力をsyslogに送信したいと考えています。それを行うための最善の選択肢は何ですか?最も信頼できるバージョンはloggerです。私は実際にスクリプトを変更したくないので、syslogに完全な出力を送るオプションを探しています。これは可能ですか?

答えて

1

loggerは、コマンドラインでメッセージが指定されておらず、-fが使用されていない場合(ファイルから読み取り)、標準入力から読み取ります。

utility | logger 

utilityからの出力の1行につき1つのログエントリで、ロガーを使用してsyslogにログインします。

ログにタグを追加するには、-t tagを追加します。それがなければ、loggerを実行しているユーザーのユーザー名がタグとして使用されます。

+0

これはコマンドライン上ではうまくいきますが、cronから始まったのはsyslogや他の(目に見える)エラーにエントリがないからです。私はcronを使うときに他のオプションを考慮する必要がありますか? – MBushveld

+0

@MBushveldうーん..それは奇妙だ。なぜそれがうまくいかないのか分かりません。 – Kusalananda

+0

この "/home/mi01/bin/setBatteryProtect.sh 2>&1 | logger -t setBattery"をcrontabに直接置くと、期待どおりに動作します。しかし、これをファイルに入れて/etc/cron.daily/に置くと、autputは書き込まれません。 crontabはファイルをループするanacronを起動して実行するので、そこのどこかで問題を引き継ぎます。どのようにより良い情報やソリューションを得るためのヒント? – MBushveld

関連する問題