처음부터 작성된 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"