![디렉토리가 존재하는 경우 rsyslog 대상 파일을 전환하십시오.](https://linux55.com/image/156447/%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%EA%B0%80%20%EC%A1%B4%EC%9E%AC%ED%95%98%EB%8A%94%20%EA%B2%BD%EC%9A%B0%20rsyslog%20%EB%8C%80%EC%83%81%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EC%A0%84%ED%99%98%ED%95%98%EC%8B%AD%EC%8B%9C%EC%98%A4..png)
다음과 같이 특정 원격 호스트의 로그를 내 응용 프로그램 디렉터리의 특정 파일로 보내도록 rsyslog 서버를 구성했습니다.
$template TmplApplication, "/whatever/jboss/logs/%fromhost-ip%/sum.log"
if $fromhost-ip != '127.0.0.1' then {
-?TmplApplication
stop
}
예를 들어 의 로그는 으로 1.2.3.4
전송됩니다 /whatever/jboss/logs/1.2.3.4/sum.log
.
그런데 지금은 jboss에서 wildfly로 애플리케이션을 변경하고 있어서 디렉터리 이름 /whatever/jboss/logs/
을 /whatever/wildfly/logs
.
나는 로그를 jboss 디렉토리(존재하는 경우)로 전달하고, 그렇지 않으면 wildfly 디렉토리로 전달할 수 있도록 이전 버전과 호환되도록 만드는 것을 선호합니다. 따라서 다음과 같습니다.
$template TmplApplication1, "/whatever/jboss/logs/%fromhost-ip%/sum.log"
$template TmplApplication2, "/whatever/wildfly/logs/%fromhost-ip%/sum.log"
if $fromhost-ip != '127.0.0.1' then {
if /whatever/jboss exists then {
-?TmplApplication1
stop
} else
-?TmplApplication2
stop
}
}
분명히 이것은 작동하지 않습니다. 올바른 구문이 무엇인지 아시나요?