나는 솔라리스 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는 이 시스템이 로그 호스트인지 아닌지 어떻게 확인합니까? "loghost" 별칭에 대해 /etc/hosts를 확인하고 그것이 시스템의 IP와 일치하는지 확인하여 ?
ifdef가 없는 syslog.conf가 있는데 여전히 작동합니다. 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 주소를 정의하는 하나 또는 여러 줄을 추가하려면(이름은 임의적이며 여러 원격 호스트가 정의된 경우 원하는 이름을 사용할 수 있습니다)