[unix] dmesg 컨텐츠를 파일에 어떻게 로그인 할 수 있습니까?

처음부터 작성된 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하여 systemd저널 에서 모든 정보를 얻을 수 있습니다 journalctl -k. syslog그리고 rsyslog당신이 systemd 사용하는 경우 필요하지 않습니다.


답변

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"


답변