diff options
-rw-r--r-- | op-mode-definitions/show-ntp.xml.in | 9 | ||||
-rwxr-xr-x | src/op_mode/show_ntp.sh | 38 |
2 files changed, 42 insertions, 5 deletions
diff --git a/op-mode-definitions/show-ntp.xml.in b/op-mode-definitions/show-ntp.xml.in index b7f0acdf8..01f4477d8 100644 --- a/op-mode-definitions/show-ntp.xml.in +++ b/op-mode-definitions/show-ntp.xml.in @@ -6,7 +6,7 @@ <properties> <help>Show peer status of NTP daemon</help> </properties> - <command>if ps -C ntpd &>/dev/null; then ntpq -n -c peers; else echo NTP daemon disabled; fi</command> + <command>${vyos_op_scripts_dir}/show_ntp.sh --basic</command> <children> <tagNode name="server"> <properties> @@ -15,15 +15,14 @@ <script>${vyos_completion_dir}/list_ntp_servers.sh</script> </completionHelp> </properties> - <command>/usr/sbin/ntpdate -q "$4"</command> + <command>${vyos_op_scripts_dir}/show_ntp.sh --server "$4"</command> </tagNode> <node name="info"> <properties> <help>Show NTP operational summary</help> </properties> - <command>if ps -C ntpd &>/dev/null; then ntpq -n -c sysinfo; ntpq -n -c kerninfo; else echo NTP daemon disabled; fi</command> - </node> - + <command>${vyos_op_scripts_dir}/show_ntp.sh --info</command> + </node> </children> </node> </children> diff --git a/src/op_mode/show_ntp.sh b/src/op_mode/show_ntp.sh new file mode 100755 index 000000000..292a6027f --- /dev/null +++ b/src/op_mode/show_ntp.sh @@ -0,0 +1,38 @@ +#!/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 |