Networkmanager-dispatcher-variables를 디버깅하는 방법

Networkmanager-dispatcher-variables를 디버깅하는 방법

DEVICE_IFACE, IP4_GATEWAY와 같은 Networkmanager-dispacher-변수가 포함된 스크립트를 디버깅하고 싶습니다. 그만큼네트워크 관리자 매뉴얼이러한 변수를 설명하지만 디버깅 방법은 언급하지 않습니다.

많이 검색했지만 이러한 변수의 값을 얻는 방법을 알 수 없습니다. echo ${DEVICE_IFACE} 와 같은 명령줄에서 에코하면 아무 값도 얻지 못합니다.

답변1

NetworkManager당신이 참조하는 매뉴얼 페이지 에는 다음과 같이 명시되어 있습니다.

환경에는 인터페이스와 연결에 대한 자세한 정보가 포함되어 있습니다. 디스패처 스크립트에서 다음 변수를 사용할 수 있습니다:
[...]
DEVICE_IFACE

따라서 이 환경은 분명히 Dispatcher.d에 의해 설정되며 거기에서 시작된 스크립트에만 액세스할 수 있습니다.

예를 들어 다음 줄을 파일에 넣을 수 있습니다 /etc/NetworkManager/dispatcher.d.

echo "interface $DEVICE_IFACE" > /tmp/myscript.log

여전히 의 매뉴얼 페이지를 참조하면 NetworkManager루트가 소유하고 실행 가능하며 그룹이나 다른 사람이 쓸 수 없도록 만들어야 합니다. 예를 들면 다음과 같습니다.

# chown root:root /etc/NetworkManager/dispatcher.d/myscript

# chmod a+x /etc/NetworkManager/dispatcher.d/myscript

# chmod go-w /etc/NetworkManager/dispatcher.d/myscript

그런 다음 NetworkManager를 다시 시작하면 /tmp/myscript.log.

답변2

디스패처 스크립트의 출력은 systemd에 의해 기록됩니다. 으로 볼 수 있습니다 sudo journalctl -u NetworkManager-dispatcher. 따라서 변수를 에코한 다음 로그를 살펴보세요.

유사한 질문에 대한 유사한 답변은 다음에서 찾을 수 있습니다.https://serverfault.com/a/1056299/310447

관련 정보