私はゼロから構築されたLinux OSを実行しています。カーネルメッセージバッファー(dmesg)をファイルに保存して、再起動しても保持されるようにします。
Syslogdを実行しようとしましたが、既存のカーネルメッセージバッファーも、syslogdの起動後にカーネルが生成した新しいメッセージもない、新しいログファイル/ var/log/messagesを開いただけです。
カーネルメッセージバッファーを永続ログファイルに保存するにはどうすればよいですか?
/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
systemd
を使用すると、journalctl -k
を使用してsystemd
ジャーナルからすべての情報を取得できます。 systemdを使用する場合、syslog
およびrsyslog
は必要ありません。
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"