메일 로그에 출력을 어떻게 기록할 수 있나요?

메일 로그에 출력을 어떻게 기록할 수 있나요?

현재 Debian 설정에는 Dovecot, Postfix 및 Spamassassin용 spamd가 모든 메시지를 출력하는 /var/log/mail.log 파일이 있습니다. 이 명령이 syslog에 출력될 수 있다는 것을 알고 있지만 loggerbash 스크립트에서 메일 로그에 쉽게 출력할 수 있는 명령이 있습니까? 아니면 수동으로 열고 추가해야 합니까?

답변1

제가 녹음한 내용은 다음과 같았 logger습니다.반품어쨌든 내 파일에는 로그아웃되어 있습니다 /var/log/mail.log. 나는 이것이 (어쨌든 Debian에서) 기본 로깅 구성이 /etc/rsyslog.conf메일 "facility"에 대한 기본 로그를 mail.log 파일로 정의하는 반면, 내 스크립트는 메일 "facility"에 로그를 기록하기 때문이라고 생각합니다. 이로 인해 loggermail.log와 syslog 모두에 로깅이 발생하는 것으로 보입니다 .

답변2

Bash 컨텍스트에서 "수동으로 열기 및 추가"는 매우 간단합니다.

mycommand >> /var/log/mail.log

표준 출력은 mycommand파일에서 파일로 이동합니다. 스크립트 시작 부분에 이것을 넣으면:

exec 1>&2&>> /var/log/mail.log

스크립트의 나머지 부분에 있는 모든 항목의 표준 출력(1)과 오류(2)가 파일에 추가됩니다.

처음에 파일을 자르려면(즉, 기존 콘텐츠에 추가하지 않음) >대신 >>.

관련 정보