dmesg 내용을 파일에 기록하는 방법은 무엇입니까?

dmesg 내용을 파일에 기록하는 방법은 무엇입니까?

저는 처음부터 새로 구축된 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를 사용하는 경우에는 필요하지 않습니다.systemdjournalctl -ksyslogrsyslog

답변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"

관련 정보