livepatch 클라이언트가 독점적이라는 점을 감안하면 완전한 대답이 없습니다.
즉, 클라이언트 ( /snap/canonical-livepatch/*/canonical-livepatchd
)는 Go로 작성되었습니다. Delve로 디버깅하면 다음과 같은 정보를 얻을 수 있습니다.
(dlv) bt
0 0x00000000006ad140 in main.(*client).check
at /home/c/Canonical/go/livepatch/src/github.com/CanonicalLtd/livepatch-client/parts/canonical-livepatch/build/daemon/client.go:212
1 0x00000000006acfeb in main.(*client).Check
at /home/c/Canonical/go/livepatch/src/github.com/CanonicalLtd/livepatch-client/parts/canonical-livepatch/build/daemon/client.go:200
2 0x00000000006b8415 in main.refresh
at /home/c/Canonical/go/livepatch/src/github.com/CanonicalLtd/livepatch-client/parts/canonical-livepatch/build/daemon/refresh.go:60
3 0x00000000006bf957 in main.newDaemon.func1
at /home/c/Canonical/go/livepatch/src/github.com/CanonicalLtd/livepatch-client/parts/canonical-livepatch/build/daemon/daemon.go:76
4 0x00000000006b86a3 in main.(*refreshLoop).loop
at /home/c/Canonical/go/livepatch/src/github.com/CanonicalLtd/livepatch-client/parts/canonical-livepatch/build/daemon/refresh.go:120
5 0x00000000006c0bfd in main.(*service).Start.func1
at /home/c/Canonical/go/livepatch/src/github.com/CanonicalLtd/livepatch-client/parts/canonical-livepatch/build/daemon/service.go:151
6 0x0000000000457b31 in runtime.goexit
at /home/c/.gobrew/versions/1.10/src/runtime/asm_amd64.s:2361
(dlv) locals
rendered.cap = 0
rendered.len = 0
rendered.ptr = *uint8 nil
status = main.ClientStatus {ClientVersion: "8.0.1", MachineId: "bfcf169468f641528ac653c41ff1797d", MachineToken: "",...+7 more}
(dlv) print status
main.ClientStatus {
ClientVersion: "8.0.1",
MachineId: "bfcf169468f641528ac653c41ff1797d",
MachineToken: "",
Architecture: "x86_64",
CpuModel: "Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz",
LastCheck: time.Time {
wall: 0,
ext: 0,
loc: *time.Location nil,},
BootTime: time.Time {
wall: 0,
ext: 63662149770,
loc: *(*time.Location)(0x963f60),},
ApplyTime: time.Time {
wall: 0,
ext: 0,
loc: *time.Location nil,},
Uptime: 3472,
Kernels: []main.KernelStatus len: 1, cap: 1, [
(*main.KernelStatus)(0xc4201883c0),
],}
status
변수 의 필드는 다음 과 같습니다.
- 클라이언트 버전
- 머신 ID (의 값
/etc/machine-id
)
- 머신 토큰 (Ubuntu One token?)
- CPU 모델 및 (OS?) 아키텍처
- 마지막 확인 시간
- 부팅 시간 (부팅 시간?)
- 적용 시간 (??-아마도 마지막 업데이트가 적용된 시점?)
- 가동 시간
- 커널 목록
부팅 시간과 가동 시간은 통계 및 성능 지표에 포함 된 것으로 간주 될 수 있습니다.
다시, 이것은 출발점입니다. 당신이 무엇을 할 것인지, 다른 사람이보다 명확한 정보를 제공 할 수 있기를 바랍니다.
원하는 것보다 더 많이 전송하기 위해 갑자기 변경되지 않도록하려면 어떻게해야합니까?
당신은 할 수 없습니다. 소스 코드를 사용할 수없고 스냅이 자동으로 새로 고쳐집니다 (IIRC).