diff options
author | Christian Poessinger <christian@poessinger.com> | 2021-03-21 08:24:45 +0100 |
---|---|---|
committer | Christian Poessinger <christian@poessinger.com> | 2021-03-21 08:24:45 +0100 |
commit | f411351baef67740b76e800161fe55f495c4bd92 (patch) | |
tree | 1a965d69b49c39752faed31015c3a054e53af1e3 /src/op_mode/show_ntp.sh | |
parent | b7386d3d3c98bb1894a8ceea56e880ae1c83c27a (diff) | |
download | vyos-1x-f411351baef67740b76e800161fe55f495c4bd92.tar.gz vyos-1x-f411351baef67740b76e800161fe55f495c4bd92.zip |
ntp: T3416: fix op-mode commands when running inside VRF
When NTP is executed inside a VRF context, we also must execute the op-mode
commands inside the given VRF.
This is a workaround until the op-mode programming library from T3402 is
available.
Diffstat (limited to 'src/op_mode/show_ntp.sh')
-rwxr-xr-x | src/op_mode/show_ntp.sh | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/op_mode/show_ntp.sh b/src/op_mode/show_ntp.sh new file mode 100755 index 000000000..e9dd6c5c9 --- /dev/null +++ b/src/op_mode/show_ntp.sh @@ -0,0 +1,39 @@ +#!/bin/sh + +basic=0 +info=0 + +while [[ "$#" -gt 0 ]]; do + case $1 in + --info) info=1 ;; + --basic) basic=1 ;; + --server) server=$2; shift ;; + *) echo "Unknown parameter passed: $1" ;; + esac + shift +done + +if ! ps -C ntpd &>/dev/null; then + echo NTP daemon disabled + exit 1 +fi + +PID=$(pgrep ntpd) +VRF_NAME=$(ip vrf identify ${PID}) + +if [ ! -z ${VRF_NAME} ]; then + VRF_CMD="sudo ip vrf exec ${VRF_NAME}" +fi + +if [ $basic -eq 1 ]; then + $VRF_CMD ntpq -n -c peers +elif [ $info -eq 1 ]; then + echo "=== sysingo ===" + $VRF_CMD ntpq -n -c sysinfo + echo + echo "=== kerninfo ===" + $VRF_CMD ntpq -n -c kerninfo +elif [ ! -z $server ]; then + $VRF_CMD /usr/sbin/ntpdate -q $server +fi + |