Files
chrony-ubuntu/chrony-install
2025-12-18 12:57:31 +00:00

75 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
# Author : Allan Christensen
# First Created : 18122025 (DD-MM-YYYY)
# Description : Installs Chrony on Ubuntu 24.04
# License : MIT License (see LICENSE file for details)
#
# Are we root
#
if [[ $(id -u) -ne 0 ]]; then echo "" && echo "Must be root or use sudo" && echo "" ; exit ; fi
#
# Pre-create Chrony log directory (avoids dpkg-statoverride warning)
#
install -d -o chrony -g chrony -m 0750 /var/log/chrony
#
# Install Chrony
#
apt install -y chrony
#
# Enable and start Chrony
#
systemctl enable chrony --now
#
# Chrony configuration file
#
conf_file="/etc/chrony/chrony.conf"
backup_file="${conf_file}.bak"
#
# Backup existing config
#
cp "$conf_file" "$backup_file"
#
# Define NTP servers
#
chrony_servers="pool 0.pool.ntp.org iburst
pool 1.pool.ntp.org iburst
pool 2.pool.ntp.org iburst
pool 3.pool.ntp.org iburst"
#
# Comment out existing pool lines
#
sed -i '/^pool / s/^/# /' "$conf_file"
#
# Append our servers
#
printf "\n# Custom NTP servers\n%s\n" "$chrony_servers" >> "$conf_file"
#
# Restart Chrony
#
systemctl restart chrony
#
# Force immediate time sync
#
chronyc makestep
#
# All done
#
printf "\nAll Done...\n"
#
# End of script
#