3 config
=/etc
/chrony.conf
4 keyfile
=/etc
/chrony.keys
5 chronyc
=/usr
/bin
/chronyc
6 dhclient_servers
=/var
/lib
/dhclient
/chrony.servers.
*
7 service_name
=chronyd.service
10 awk '/^[ \t]*'$1'\>/ { print $2; exit }' < $keyfile
14 awk '/^[ \t]*commandkey\>/ { keyid=$2 } END { print keyid }' < $config
18 commandkeyid
=$
(get_commandkeyid
)
19 [ -z "$commandkeyid" ] && return 1
20 commandkey
=$
(get_key
$commandkeyid)
21 [ -z "$commandkey" ] && return 2
29 generate_commandkey
() {
30 commandkeyid
=$
(get_commandkeyid
)
31 [ -z "$commandkeyid" ] && return 1
32 commandkey
=$
(get_key
$commandkeyid)
33 [ -z "$commandkey" ] ||
return 0
35 commandkey
=$
(tr -c -d '[\041-\176]' < /dev
/urandom |
head -c 16)
36 [ -n "$commandkey" ] && echo "$commandkeyid $commandkey" >> $keyfile
39 add_dhclient_servers
() {
40 command=$
(cat $dhclient_servers 2> /dev
/null |
41 while read server serverargs
; do
42 echo "add server $server $serverargs"
44 if [ -n "$command" ]; then
45 chrony_command
"$command" &> /dev
/null
50 systemctl status chronyd.service
&> /dev
/null
61 is_running
&& chrony_command
"$2"
64 echo $
"Usage: $0 {generate-commandkey|add-dhclient-servers|command}"