Linux의 특정 링크에 대한 systemd netowrkd 임대 정보를 읽으려면 Busctl을 사용하고 싶습니다.
내 시스템 에서 busctl tree
네트워크 인터페이스를 볼 수 있습니다.
Service org.freedesktop.resolve1:
└─/org
└─/org/freedesktop
├─/org/freedesktop/LogControl1
└─/org/freedesktop/resolve1
├─/org/freedesktop/resolve1/dnssd
└─/org/freedesktop/resolve1/link
├─/org/freedesktop/resolve1/link/_31
├─/org/freedesktop/resolve1/link/_32
├─/org/freedesktop/resolve1/link/_33
├─/org/freedesktop/resolve1/link/_34
├─/org/freedesktop/resolve1/link/_35
├─/org/freedesktop/resolve1/link/_36
├─/org/freedesktop/resolve1/link/_37
├─/org/freedesktop/resolve1/link/_38
└─/org/freedesktop/resolve1/link/_39
링크 인터페이스를 확인하면 읽으려는 DHCP 서버 이름이 표시됩니다.
busctl introspect org.freedesktop.network1 /org/freedesktop/network1/link/_35
NAME TYPE SIGNATURE RESULT/VALUE FLAGS
org.freedesktop.DBus.Introspectable interface - - -
.Introspect method - s -
org.freedesktop.DBus.Peer interface - - -
.GetMachineId method - s -
.Ping method - - -
org.freedesktop.DBus.Properties interface - - -
.Get method ss v -
.GetAll method s a{sv} -
.Set method ssv - -
.PropertiesChanged signal sa{sv}as - -
org.freedesktop.network1.DHCPServer interface - - -
.Leases property a(uayayayayt) 2 2 7 1 174 229 169 184 21 41 4 10 10 1… emits-change
org.freedesktop.network1.Link interface - - -
.Describe method - s -
.ForceRenew method - - -
.Reconfigure method - - -
.Renew method - - -
.RevertDNS method - - -
.RevertNTP method - - -
.SetDNS method a(iay) - -
.SetDNSEx method a(iayqs) - -
.SetDNSOverTLS method s - -
.SetDNSSEC method s - -
.SetDNSSECNegativeTrustAnchors method as - -
.SetDefaultRoute method b - -
.SetDomains method a(sb) - -
.SetLLMNR method s - -
.SetMulticastDNS method s - -
.SetNTP method as - -
.AddressState property s "routable" emits-change
.AdministrativeState property s "configured" emits-change
.BitRates property (tt) 18446744073709551615 184467440737095516… -
.CarrierState property s "carrier" emits-change
.IPv4AddressState property s "routable" emits-change
.IPv6AddressState property s "degraded" emits-change
.OnlineState property s "online" emits-change
.OperationalState property s "routable" emits-change
Leases 메서드를 호출할 수 없는 것 같습니다.
busctl call org.freedesktop.network1 /org/freedesktop/network1/link/_35 org.freedesktop.network1.DHCPServer Leases
Call failed: Unknown method Leases or interface org.freedesktop.network1.DHCPServer.
여기서 내가 무엇을 잘못하고 있으며 임대 정보를 어떻게 읽나요? 감사해요.
답변1
표에서 볼 수 있듯이 Leases
이는 방법이 아닙니다.재산.그것을 읽곤 했어요 busctl get-property
.
busctl get-property org.freedesktop.network1 \
/org/freedesktop/network1/link/_35 \
org.freedesktop.network1.DHCPServer \
Leases
속성은 인터페이스 아래에서 메서드를 호출하여 액세스됩니다 org.freedesktop.DBus.Properties
. 예를 들어 "get-property"가 호출되는 Get(interface, property)
반면 "introspect"가 사용될 수 있습니다 GetAll(interface)
.
busctl call org.freedesktop.network1 \
/org/freedesktop/network1/link/_35 \
org.freedesktop.DBus.Properties \
Get \
ss \
org.freedesktop.network1.DHCPServer \
Leases
(이 부동산에는 발행된 임대 계약이 포함되어 있다는 점을 기억하십시오.통과네트워크는 DHCP 서버 역할을 합니다. Networkd는 클라이언트로서 수신하는 임대에 대한 D-Bus 액세스를 제공하지 않습니다. /run에서 파일을 읽는 C API를 사용해야 합니다. )