summaryrefslogtreecommitdiffstats
path: root/core/modules/bwlp-stage4-tweaks/data/opt/openslx/scripts/cron-ntp
diff options
context:
space:
mode:
Diffstat (limited to 'core/modules/bwlp-stage4-tweaks/data/opt/openslx/scripts/cron-ntp')
-rwxr-xr-xcore/modules/bwlp-stage4-tweaks/data/opt/openslx/scripts/cron-ntp40
1 files changed, 40 insertions, 0 deletions
diff --git a/core/modules/bwlp-stage4-tweaks/data/opt/openslx/scripts/cron-ntp b/core/modules/bwlp-stage4-tweaks/data/opt/openslx/scripts/cron-ntp
new file mode 100755
index 00000000..64dc2fda
--- /dev/null
+++ b/core/modules/bwlp-stage4-tweaks/data/opt/openslx/scripts/cron-ntp
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+. /opt/openslx/config
+
+[ -z "$SLX_NTP_SERVER" ] && exit 0
+
+declare -a cmd
+if command -v ntpdate &> /dev/null; then
+ cmd=( ntpdate )
+ ntpdate --help 2>&1 | grep -q '\s-B\s' && cmd+=( -B )
+ ntpdate --help 2>&1 | grep -q '\s-t\s' && cmd+=( -t 5 )
+elif command -v ntpdig &> /dev/null; then
+ cmd=( ntpdig )
+ ntpdig --help 2>&1 | grep -q '\s-s\s' && cmd+=( -s )
+ ntpdig --help 2>&1 | grep -q '\s-t\s' && cmd+=( -t 5 )
+ ntpdig --help 2>&1 | grep -q '\s-p\s' && cmd+=( -p 2 )
+elif busybox ntpd --help &> /dev/null; then
+ command -v timeout &> /dev/null && cmd=( timeout 5 )
+ cmd+=( busybox ntpd -q -n -p )
+fi
+
+# Random delay if not run on terminal
+[ -t 0 ] || sleep $(( RANDOM % 60 ))
+
+for srv in $SLX_NTP_SERVER; do
+ "${cmd[@]}" "$srv" || continue
+ # Success
+ echo "Time updated from NTP"
+ command -v hwclock &> /dev/null || exit 0
+ sleep 1
+ if [ "$SLX_BIOS_CLOCK" = "local" ]; then
+ hwclock -l -w || echo "... but could not set BIOS clock to localtime"
+ elif [ "$SLX_BIOS_CLOCK" = "utc" ]; then
+ hwclock -u -w || echo "... but could not set BIOS clock to UTC"
+ fi
+ exit 0
+done
+
+echo 'No NTP server reachable!'
+exit 1