디스크 작업 내에서 출력 리디렉션이 작동하지 않습니다.

디스크 작업 내에서 출력 리디렉션이 작동하지 않습니다.

디스크 작업을 사용하는 명령에서 STDOUT+STDERR을 성공적으로 리디렉션할 수 없습니다. 항상 작동하는 표준 리디렉션은 다음과 같습니다.어떻게든이제 출력을 캡처합니다. 두 가지 실제 예:

예시 1:

# wipefs --all --force /dev/sda >>/var/log/custom.log 2>&1

[   20.169018 ]  sda: sda1

예 2:

# mount --verbose --options defaults --types ext4 /dev/sda1 /path/is/here >>/var/log/custom.log 2>&1

[   30.947410 ] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)

흥미롭게도 이는 디스크가 어떤 방식으로든 접촉되었을 때만 발생합니다. 스크립트의 다른 모든 리디렉션은 예상대로 작동합니다.

어떤 아이디어가 있나요?

답변1

이는 명령의 출력이 아니라 커널 로그 메시지입니다. 메시지는 명령에서 나오지 않으므로 리디렉션의 영향을 받지 않습니다.

커널 로그 메시지는 일반적으로 로그 파일에 들어가며 중요한 메시지는 콘솔에 추가로 표시됩니다. "중요" 및 "콘솔"의 정확한 의미는 로깅 구성에 따라 다릅니다. sysklogd를 사용하는 경우 구성 파일 은 이고 /etc/syslog.confrsyslog를 사용하는 경우입니다 . systemd의 내장 로깅을 사용하는 경우 커널은 구성 가능한 로깅 데몬을 거치지 않고 콘솔에 직접 로그를 인쇄할 수도 있습니다 (그러나 이는 일반적으로 로깅 데몬의 구성을 통해 간접적으로 수행됩니다)./etc/rsyslog.conf/etc/rsyslog.d/*/etc/systemd/journal.confdmesg --console-…

관련 정보