問題:syslogdが起動する前に発生したカーネルログが私のsyslogに追加されません。
システムの説明:起動順序が開始され、約5秒後にsyslogdが起動します。起動シーケンスの約2秒間実行されるスクリプトが/ dev / kmesgに添付されています。 syslogd が起動する前に実行されます。
カーネルログをsyslogに送信するためにklogdを実行していますが、syslogdの起動後に発生したカーネルログのみを送信してください。
スクリプトの実行中にsyslogdが起動しないため、syslogのスクリプトにカーネルログがありません。
システムログから5秒後にすべてのカーネルログを表示できます。起動後5秒後に/ dev / kmsgに追加すると、syslogに移動するログが表示されます。
私の/etc/syslog.confには、次のようにsyslogに入るようにすべてが設定されています。
。/パス/to/syslog
klogdが実行された後に/ dev / kmsgに追加される内容だけでなく、kmsgリングバッファの既存の内容もsyslogに書き込むためにklogdが必要です。どうすればいいですか?
答え1
起動したら、klogd
2 番目のコピーを実行します。ワンショットモード(klogd -o
)。カーネルメッセージバッファ内の既存のメッセージを読み取り、処理してから終了します。
最初の長期インスタンスを起動すると、klogd
メッセージが失われないことを確認する必要があります。
これを実行できない場合(たとえば、非常に古いバージョンklogd
またはbusybox
類似の組み込みシステムツールキットのバージョンがある場合)、次のことができます。
if [ -e /var/log/dmesg.boot ]; then
mv /var/log/dmesg.boot /var/log/dmesg.prevboot
fi
dmesg > /var/log/dmesg.boot
ルートファイルシステムへの書き込みが可能になったら?