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


18

처음부터 작성된 Linux OS를 실행하고 있습니다. 커널 메시지 버퍼 (dmesg)를 재부팅 사이에 지속되는 파일에 저장하고 싶습니다.

syslogd를 실행하려고 시도했지만 기존 커널 메시지 버퍼 또는 syslogd가 시작된 후 커널이 생성 한 새 메시지가없는 새 / var / log / messages 로그 파일이 열렸습니다.

커널 메시지 버퍼를 영구 로그 파일에 어떻게 저장할 수 있습니까?


sysklogd, busybox, inetutils, systemd, rsyslog 중 어떤 syslogd를 실행 중입니까?
Gilles 'SO- 악의를 멈춰라'

답변:


16

/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

4
+1 dmesg는 링 버퍼를 사용하므로 제한없이 커지지 않고 커널 내에 유지되므로 파일 시스템과 같은 작업 전에 메시지를 기록 할 수 있습니다.
msw

3

를 사용하면을 사용 systemd하여 systemd저널 에서 모든 정보를 얻을 수 있습니다 journalctl -k. syslog그리고 rsyslog당신이 systemd 사용하는 경우 필요하지 않습니다.


0

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"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.