저는 처음부터 새로 구축된 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"