저는 Solaris 10을 사용하고 있는데 다음 줄에서 이 줄을 보았습니다./etc/syslog.conf
*.err;kern.debug;daemon.notice;mail.crit;auth.debug;local2.notice /var/adm/messages
이것은 내가 가지고 있다면승인 오류/var/adm/message
, 다음과 같은 이유로 오류 메시지가 두 번 나타납니다.
*.err
auth.debug
다른 줄이 있다고 가정해 보겠습니다.
*.emerg *
*.err;kern.debug;daemon.notice;mail.crit;auth.debug;local2.notice /var/adm/messages
이것은 내가 가지고 있다면kernel.emerg, 두 번 기록됩니다 /var/adm/messages
.
*.emerg * and
kern.debug /var/adm/messages
?
=======
다음에 추가됨
auth.notice ifdef(`LOGHOST', /var/log/authlog, @loghost)
syslog는 이 시스템이 로그 호스트인지 어떻게 확인합니까? /etc/hosts에서 "loghost" 별칭을 확인하고 그것이 시스템의 IP와 일치하는지 확인함으로써?
내 syslog.conf에는 ifdef가 없지만 여전히 작동합니다. ifdef가 필요합니까?
답변1
이러한 규칙은 기본적으로 런타임 시 각 메시지에 적용되는 필터를 정의하므로 현실적으로 동일한 대상/파일에 중복 메시지가 있어서는 안 됩니다.
세미콜론('';'') 구분 기호를 사용하여 단일 작업에 대해 여러 선택기를 지정할 수 있습니다. 선택기 필드의 각 선택기가 이전 선택기를 재정의한다는 점을 기억하세요.
그러나 다른 파일(콘솔 포함)로 전송된 동일한 메시지를 받을 수 있고 받을 수 있습니다.
의 경우
*.emerg *
이는 syslog의 모든 사용자에 대한 약어이며 모든 사용자에게 적용됩니다.
모두 로그인되어 있습니다
긴급 메시지는 일반적으로 현재 온라인에 있는 모든 사용자에게 시스템에 이상이 발생했음을 알리기 위해 전송됩니다. 이 wall(1) 기능을 지정하려면 별표(''*'')를 사용하십시오.
따라서 kernel.emerg에서는 실제로 모든 사용자와 /var/adm/messages로 전송되지만 /var/adm/messages에는 한 줄만 있습니다.
원시 BSD syslogd의 동작은 주어진 작업을 기반으로 지정된 우선순위 이상의 모든 메시지를 기록하는 것입니다.
매뉴얼 syslog.conf
페이지에서 인용:
ifdef의 경우 예는 다음과 같습니다.
auth.notice ifdef(`LOGHOST', /var/log/authlog, @loghost)
LOGHOST가 정의된 경우(즉, 이 syslog는 LOGHOST인 경우) 로그/메시지를 /var/log/authlog로 보내고, 그렇지 않으면 @loghost로 전송합니다.
ifdef의 경우 LOGHOST에 따르면 필요하지 않습니다.이 페이지/etc/hosts 파일에서 가져온 시스템 이름입니다(또는 테스트용 DNS일 수도 있음).
/etc/hosts(./inet/hosts)를 편집하고 로그 호스트의 IP 주소를 정의하는 하나 이상의 행을 추가합니다(이름은 임의적입니다. 여러 원격 호스트가 정의된 경우 원하는 이름을 사용할 수 있습니다).