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