/dev/xconsole에 로그인할 수 없습니다.

/dev/xconsole에 로그인할 수 없습니다.

을(를) 사용하고 rsyslog있으며 에 로그를 보내고 싶습니다 /dev/xconsole.

다음과 같은 관련 줄이 있습니다/etc/rsyslog.conf

*.*;cron.!=info;mail.!=info   |/dev/xconsole

이는 부분적으로만 효과적입니다. /dev/xconsolecca 64kB만 저장할 수 있는 것 같습니다 . 버퍼가 가득 차면 새 로그가 손실됩니다.

다음 테스트를 수행했습니다.

1) add to `/etc/rsyslog.conf`
*.*;cron.!=info;mail.!=info    /tmp/aaa

2) reboot

3) cat /dev/xconsole > /tmp/bbb

4) diff /tmp/aaa /tmp/bbb

이제 aaa와 bbb는 동일해야 합니다. 그러나 그들은 그렇지 않습니다. aaa에는 전체 로그가 포함되어 있지만 bbb에는 마지막 229줄이 누락되어 있습니다.

이 문제를 어떻게 해결할 수 있나요? 크기가 /dev/xconsole정말 제한되어 있나요? 크기를 늘릴 수 있나요?

답변1

기술적으로는 /dev/xconsole그렇지 않습니다 .크기일명 Named Pipe이기 때문에. 그러나 Linux 커널은 사용 시 각 객체에 대해 64KiB(Linux 3.x) 또는 4KiB(Linux 2.x)의 버퍼를 제공합니다. 파일 시스템에는 없고 메모리에만 있습니다. 바라보다https://stackoverflow.com/questions/4624071/pipe-buffer-size-is-4k-or-64k그리고https://unix.stackexchange.com/a/229544/80483더 많은 정보를 알고 싶습니다.

응용 프로그램(xconsole)이 제때에 데이터를 읽지 않으면 버퍼가 가득 차서 syslog에 쓸 수 없으며 차단되지 않도록 메시지가 삭제됩니다.

관련 정보