解決策 1:
<オール>
いいえ - STDOUT に移動します (echo
を使用する場合 ) または STDERR (echo >&2
を使用する場合 ).
スクリプトは、独自にログや syslog に書き込む必要があります (ディストリビューションにはいくつかの init.d が含まれている場合があります) そこで役立つかもしれない機能 - あなたのディストリビューションを質問に追加してください)。
ログを探す場合は、tee
を探します 指図。 syslog の場合は logger
を見てください .好きなように組み合わせることができます。
解決策 2:
スクリプトを呼び出して出力をファイルにリダイレクトするラッパー スクリプトを作成します
#!/bin/bash
/path/to/your/script &>/path/to/logfile
解決策 3:
次のように、メッセージを画面と syslog の両方にエコーする関数を作成できます:
LOGGER="/usr/bin/logger -t $myScript" # check the location of logger for your system
myEcho () {
echo "$1"
$LOGGER "$1"
}
それを別のファイルに入れて、スクリプトに含めることもできます
#!/bin/bash
myScript=$(basename $0)
[ -r /myFunctions/myecho ] && . /myFunctions/myecho
解決策 4:
通常、init スクリプトからのメッセージはどこにもキャプチャされません。したがって、自分でそれを行う方法を実装する必要があります。 logger
を使用することをお勧めします すべての出力を syslog に送信します。この例では、stdout と stderr を syslog に送信します:
exec 1> >(logger -s -t $(basename $0)) 2>&1
この素晴らしい記事で見つけました:http://urbanautomaton.com/blog/2014/09/09/redirecting-bash-script-output-to-syslog/.