HEX
Server: LiteSpeed
System: Linux ip-172-31-76-142.ec2.internal 4.14.158-129.185.amzn2.x86_64 #1 SMP Tue Dec 24 03:15:32 UTC 2019 x86_64
User: 69b4844ae61d4e92bf26ad98af552775 (1065)
PHP: 7.2.27
Disabled: exec,passthru,shell_exec,system,eval
Upload Files
File: //etc/NetworkManager/dispatcher.d/20-chrony
#!/bin/sh
# This is a NetworkManager dispatcher script for chronyd to set its NTP sources
# online or offline when a network interface is configured or removed

export LC_ALL=C

# Check if there is a default route

if /sbin/ip route list 2> /dev/null | grep -q '^default'; then
  chronyc online > /dev/null 2>&1
  exit 0
fi

sources=$(chronyc -c -n sources 2> /dev/null)

[ $? -ne 0 ] && exit 0

# Check each configured source if it has a route

echo "$sources" | while IFS=, read mode state address rest; do
  [ "$mode" != '^' ] && [ "$mode" != '=' ] && continue

  /sbin/ip route get "$address" > /dev/null 2>&1 && command="online" || command="offline"

  # Set priority of sources so that the selected source is set as
  # last if offline to avoid unnecessary reselection
  [ "$state" != '*' ] && priority=1 || priority=2

  echo "$priority $command $address"

done | sort | while read priority command address; do
  echo "$command $address"
done | chronyc > /dev/null 2>&1

exit 0