私は最初から新しく構築されたLinuxオペレーティングシステムを実行しています。再起動後も持続するファイルにカーネルメッセージバッファ(dmesg)を保存したいと思います。
syslogdを実行してみましたが、既存のカーネルメッセージバッファもなくsyslogdを起動した後、カーネルから生成された新しいメッセージもない新しいログファイル/var/log/messagesのみが開かれました。
カーネルメッセージバッファを永続ログファイルに保存するには?
答え1
/etc/rsyslog.conf
または確認する必要があります/etc/syslog.conf
。たとえば、早くキューに登録した場合:
*.* -/var/log/syslog
dmesgのコンテンツを含むすべてのコンテンツは、このファイルに配置する必要があります。より効果的にターゲティングするには:
kernel.* -/var/log/dmesg
何らかの理由で失敗した場合は、定期的に(たとえば、cronを介して)次のことができます。
dmesg > /var/log/dmesg
dmesgバッファのサイズ(カーネルにコンパイルされるか、パラメータで設定されているlog_buf_len
)とシステムの実行期間によっては、起動後のカーネルロギングが維持されます。
dmesg 出力をファイルに記録し続けるには、-w(--follow) フラグを使用します。
dmesg --follow > mydmesg.log
答え2
を使用すると、systemd
ジャーナルのすべての情報を取得するために使用できます。 systemdを使用している場合は必要ありません。systemd
journalctl -k
syslog
rsyslog
答え3
PopSicle これを行うには、以前のmsdosリダイレクトを使用して、LibreOffice Calcによって端末のスプレッドシートで開かれた.csvファイルにリダイレクトしました。次のようにしてみてください。
dmesg > /path to where you want the file written/File-Name.csv
dmesg > /media/joe/Data/Z-Back/Script-Files/Dmesg-Output.csv
echo "Dmesg-to-CSV.sh"" the script file"
#!/bin/bash
echo "This is a shell script"
SOMEVAR='I am done running dmesg and redirecting to /media/joe/Data/B-Back/Script-Files/Dmesg-Output.csv'
echo "$SOMEVAR"
dmesg > /media/joe/Data/Z-Back/Script-Files/Dmesg-Output.csv
echo "Dmesg-CSV.desktop"" the icon file"
[Desktop Entry]
Encoding=UTF-8
Name=Dmesg-to-CSV.sh
Comment=Launch DirSyncPro
Exec=gnome-terminal -e /media/joe/Data/Z-Back/Script-Files/Dmesg-to-CSV.sh
Icon=utilities-terminal
Type=Application
Name[en_US]=Dmesg-CSV.desktop
echo "both the .sh file and .desktop file are stored in the same directory as the .csv output file"