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

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

Networkmanager-dispacher-변수(예: DEVICE_IFACE, IP4_GATEWAY)가 포함된 스크립트를 디버깅하고 싶습니다. 이것네트워크 관리자 매뉴얼이러한 변수는 설명되어 있지만 디버깅 방법은 언급되어 있지 않습니다.

많이 검색했지만 이러한 변수의 값을 얻는 방법을 알 수 없습니다. 명령줄에서 에코하면(예: 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를 다시 시작하면 .txt 파일에서 "interface wlan0"과 같은 내용을 읽어야 합니다 /tmp/myscript.log.

답변2

스케줄러 스크립트의 출력은 systemd에 의해 기록됩니다 sudo journalctl -u NetworkManager-dispatcher. . 따라서 변수를 에코하고 로그를 살펴보세요.

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

관련 정보