2020-07-30 16:20:24 -07:00
|
|
|
|
2020-03-10 14:18:55 -07:00
|
|
|
# jc.parsers.ntpq
|
|
|
|
jc - JSON CLI output utility ntpq Parser
|
|
|
|
|
2020-08-05 13:32:59 -07:00
|
|
|
Usage (cli):
|
2020-03-10 14:18:55 -07:00
|
|
|
|
|
|
|
specify --ntpq as the first argument if the piped input is coming from ntpq -p
|
|
|
|
|
2020-08-05 13:32:59 -07:00
|
|
|
Usage (module):
|
|
|
|
|
|
|
|
import jc.parsers.ntpq
|
|
|
|
result = jc.parsers.ntpq.parse(ntpq_command_output)
|
|
|
|
|
2020-03-10 14:18:55 -07:00
|
|
|
Compatibility:
|
|
|
|
|
2020-05-30 15:51:54 -07:00
|
|
|
'linux', 'freebsd'
|
2020-03-10 14:18:55 -07:00
|
|
|
|
|
|
|
Examples:
|
|
|
|
|
|
|
|
$ ntpq -p | jc --ntpq -p
|
|
|
|
[
|
|
|
|
{
|
|
|
|
"remote": "44.190.6.254",
|
|
|
|
"refid": "127.67.113.92",
|
|
|
|
"st": 2,
|
|
|
|
"t": "u",
|
|
|
|
"when": 1,
|
|
|
|
"poll": 64,
|
|
|
|
"reach": 1,
|
|
|
|
"delay": 23.399,
|
|
|
|
"offset": -2.805,
|
2020-03-11 13:24:55 -07:00
|
|
|
"jitter": 2.131,
|
|
|
|
"state": null
|
2020-03-10 14:18:55 -07:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"remote": "ntp.wdc1.us.lea",
|
|
|
|
"refid": "130.133.1.10",
|
|
|
|
"st": 2,
|
|
|
|
"t": "u",
|
|
|
|
"when": null,
|
|
|
|
"poll": 64,
|
|
|
|
"reach": 1,
|
|
|
|
"delay": 93.053,
|
|
|
|
"offset": -0.807,
|
2020-03-11 13:24:55 -07:00
|
|
|
"jitter": 2.839,
|
|
|
|
"state": null
|
2020-03-10 14:18:55 -07:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"remote": "clock.team-cymr",
|
|
|
|
"refid": "204.9.54.119",
|
|
|
|
"st": 2,
|
|
|
|
"t": "u",
|
|
|
|
"when": null,
|
|
|
|
"poll": 64,
|
|
|
|
"reach": 1,
|
|
|
|
"delay": 70.337,
|
|
|
|
"offset": -2.909,
|
2020-03-11 13:24:55 -07:00
|
|
|
"jitter": 2.6,
|
|
|
|
"state": null
|
2020-03-10 14:18:55 -07:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"remote": "mirror1.sjc02.s",
|
|
|
|
"refid": "216.218.254.202",
|
|
|
|
"st": 2,
|
|
|
|
"t": "u",
|
|
|
|
"when": 2,
|
|
|
|
"poll": 64,
|
|
|
|
"reach": 1,
|
|
|
|
"delay": 29.325,
|
|
|
|
"offset": 1.044,
|
2020-03-11 13:24:55 -07:00
|
|
|
"jitter": 4.069,
|
|
|
|
"state": null,
|
2020-03-10 14:18:55 -07:00
|
|
|
}
|
|
|
|
]
|
|
|
|
|
|
|
|
$ ntpq -pn| jc --ntpq -p
|
|
|
|
[
|
|
|
|
{
|
|
|
|
"remote": "44.190.6.254",
|
|
|
|
"refid": "127.67.113.92",
|
|
|
|
"st": 2,
|
|
|
|
"t": "u",
|
|
|
|
"when": 66,
|
|
|
|
"poll": 64,
|
|
|
|
"reach": 377,
|
|
|
|
"delay": 22.69,
|
|
|
|
"offset": -0.392,
|
2020-03-11 13:24:55 -07:00
|
|
|
"jitter": 2.085,
|
|
|
|
"state": "+"
|
2020-03-10 14:18:55 -07:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"remote": "108.59.2.24",
|
|
|
|
"refid": "130.133.1.10",
|
|
|
|
"st": 2,
|
|
|
|
"t": "u",
|
|
|
|
"when": 63,
|
|
|
|
"poll": 64,
|
|
|
|
"reach": 377,
|
|
|
|
"delay": 90.805,
|
|
|
|
"offset": 2.84,
|
2020-03-11 13:24:55 -07:00
|
|
|
"jitter": 1.908,
|
|
|
|
"state": "-"
|
2020-03-10 14:18:55 -07:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"remote": "38.229.71.1",
|
|
|
|
"refid": "204.9.54.119",
|
|
|
|
"st": 2,
|
|
|
|
"t": "u",
|
|
|
|
"when": 64,
|
|
|
|
"poll": 64,
|
|
|
|
"reach": 377,
|
|
|
|
"delay": 68.699,
|
|
|
|
"offset": -0.61,
|
2020-03-11 13:24:55 -07:00
|
|
|
"jitter": 2.576,
|
|
|
|
"state": "+"
|
2020-03-10 14:18:55 -07:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"remote": "72.5.72.15",
|
|
|
|
"refid": "216.218.254.202",
|
|
|
|
"st": 2,
|
|
|
|
"t": "u",
|
|
|
|
"when": 63,
|
|
|
|
"poll": 64,
|
|
|
|
"reach": 377,
|
|
|
|
"delay": 22.654,
|
|
|
|
"offset": 0.231,
|
2020-03-11 13:24:55 -07:00
|
|
|
"jitter": 1.964,
|
|
|
|
"state": "*"
|
2020-03-10 14:18:55 -07:00
|
|
|
}
|
|
|
|
]
|
|
|
|
|
|
|
|
$ ntpq -pn| jc --ntpq -p -r
|
|
|
|
[
|
|
|
|
{
|
2020-03-11 13:24:55 -07:00
|
|
|
"s": "+",
|
2020-03-10 14:18:55 -07:00
|
|
|
"remote": "44.190.6.254",
|
|
|
|
"refid": "127.67.113.92",
|
|
|
|
"st": "2",
|
|
|
|
"t": "u",
|
|
|
|
"when": "66",
|
|
|
|
"poll": "64",
|
|
|
|
"reach": "377",
|
|
|
|
"delay": "22.690",
|
|
|
|
"offset": "-0.392",
|
|
|
|
"jitter": "2.085"
|
|
|
|
},
|
|
|
|
{
|
2020-03-11 13:24:55 -07:00
|
|
|
"s": "-",
|
2020-03-10 14:18:55 -07:00
|
|
|
"remote": "108.59.2.24",
|
|
|
|
"refid": "130.133.1.10",
|
|
|
|
"st": "2",
|
|
|
|
"t": "u",
|
|
|
|
"when": "63",
|
|
|
|
"poll": "64",
|
|
|
|
"reach": "377",
|
|
|
|
"delay": "90.805",
|
|
|
|
"offset": "2.840",
|
|
|
|
"jitter": "1.908"
|
|
|
|
},
|
|
|
|
{
|
2020-03-11 13:24:55 -07:00
|
|
|
"s": "+",
|
2020-03-10 14:18:55 -07:00
|
|
|
"remote": "38.229.71.1",
|
|
|
|
"refid": "204.9.54.119",
|
|
|
|
"st": "2",
|
|
|
|
"t": "u",
|
|
|
|
"when": "64",
|
|
|
|
"poll": "64",
|
|
|
|
"reach": "377",
|
|
|
|
"delay": "68.699",
|
|
|
|
"offset": "-0.610",
|
|
|
|
"jitter": "2.576"
|
|
|
|
},
|
|
|
|
{
|
2020-03-11 13:24:55 -07:00
|
|
|
"s": "*",
|
2020-03-10 14:18:55 -07:00
|
|
|
"remote": "72.5.72.15",
|
|
|
|
"refid": "216.218.254.202",
|
|
|
|
"st": "2",
|
|
|
|
"t": "u",
|
|
|
|
"when": "63",
|
|
|
|
"poll": "64",
|
|
|
|
"reach": "377",
|
|
|
|
"delay": "22.654",
|
|
|
|
"offset": "0.231",
|
|
|
|
"jitter": "1.964"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
|
2020-07-30 16:20:24 -07:00
|
|
|
|
2020-03-10 14:18:55 -07:00
|
|
|
## info
|
|
|
|
```python
|
2020-07-30 16:20:24 -07:00
|
|
|
info()
|
2020-03-10 14:18:55 -07:00
|
|
|
```
|
|
|
|
|
2020-07-30 16:20:24 -07:00
|
|
|
|
2020-03-10 14:18:55 -07:00
|
|
|
## process
|
|
|
|
```python
|
|
|
|
process(proc_data)
|
|
|
|
```
|
|
|
|
|
|
|
|
Final processing to conform to the schema.
|
|
|
|
|
|
|
|
Parameters:
|
|
|
|
|
|
|
|
proc_data: (dictionary) raw structured data to process
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
|
|
List of dictionaries. Structured data with the following schema:
|
|
|
|
|
|
|
|
[
|
|
|
|
{
|
2020-03-10 20:16:41 -07:00
|
|
|
"state": string, # space/~ converted to null
|
2020-03-10 14:18:55 -07:00
|
|
|
"remote": string,
|
|
|
|
"refid": string,
|
|
|
|
"st": integer,
|
|
|
|
"t": string,
|
|
|
|
"when": integer, # - converted to null
|
|
|
|
"poll": integer,
|
|
|
|
"reach": integer,
|
|
|
|
"delay": float,
|
|
|
|
"offset": float,
|
|
|
|
"jitter": float
|
|
|
|
},
|
|
|
|
]
|
|
|
|
|
|
|
|
|
2020-07-30 16:20:24 -07:00
|
|
|
|
2020-03-10 14:18:55 -07:00
|
|
|
## parse
|
|
|
|
```python
|
|
|
|
parse(data, raw=False, quiet=False)
|
|
|
|
```
|
|
|
|
|
|
|
|
Main text parsing function
|
|
|
|
|
|
|
|
Parameters:
|
|
|
|
|
|
|
|
data: (string) text data to parse
|
|
|
|
raw: (boolean) output preprocessed JSON if True
|
|
|
|
quiet: (boolean) suppress warning messages if True
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
|
|
|
List of dictionaries. Raw or processed structured data.
|
|
|
|
|