[unix] 다른 시스템에서 systemd system.journal을 검사하는 방법

장치에서 아치 리눅스가 실패했습니다. 장치에 화면이없고 네트워크에 응답하지 않습니다. 그래서 SD 카드를 가져 와서 우분투 데스크탑에 삽입하고 새로운 시스템을 확인하십시오.

아치 리눅스 문서에서 나는 내가 할 수 있다는 것을 안다.

 strings /mnt/arch/var/log/journal/.../system.journal | grep -i message

하지만 정말 기본입니다. 질문은 ~이야:

문자열을 사용하는 것보다 다른 시스템에서 system.journal을 검사하는 더 편리한 방법이 있습니까? 예를 들어 journalctl 에 읽을 파일을 지정할 수 있습니까 ?



답변

첫째, strings저널링 기능은 저널링이 작은 (현재 구현에서 64KiB 미만) 필드를 압축하지 않는다는 단순한 우연의 일치에서 비롯됩니다. 이것은 저널을 읽는 데 지원되는 방법이 아니며, 아치 위키에서는 실제로 그렇게 표시되어야합니다. 마지막 도랑 복구 방법에 가깝습니다.

이제 질문에. 에서 journalctl (1) :

-D DIR, –directory = DIR

디렉토리 경로를 인수로 사용합니다. 지정된 경우 journalctl은 기본 런타임 및 시스템 저널 경로 대신 지정된 저널 디렉토리 DIR에서 작동합니다.

따라서 손상된 시스템의 rootfs가 아래 $DEST에 마운트되어 있다고 가정하면 journalctl -D $DEST/var/log/journal시스템 로그를 보는 데 사용하십시오 .

완전성을 위해 : 특정 파일을 보려면 journalctl --file, 예를 들어을 사용하십시오 journalctl --file /var/log/journal/$(cat /etc/machine-id)/system.journal. 그러나 저널 파일이 주기적으로 회전하므로이 양식을 사용하여 전체 저널을 볼 수는 없습니다.


답변