# Automatización de la configuración de servidores de hora en Linux, Debian/Ubuntu y CentOS/RHEL

- Link: https://binariocero.com/linux/automatizacion-de-la-configuracion-de-servidores-de-hora-en-linux-debian-ubuntu-y-centos-rhel
- Published: 2025-07-26T12:20:46+02:00
- Author: Juan José Fernández Durán

![Loading](https://binariocero.com/wp-content/plugins/page-views-count/ajax-loader-
2x.gif)

La correcta sincronización del tiempo en los sistemas Linux es esencial para el 
funcionamiento de servicios críticos como autenticación, registros de auditoría,
sistemas distribuidos o tareas programadas. Este artículo presenta dos scripts de
configuración automatizada que detectan e instalan el servicio de sincronización
de tiempo más adecuado (Chrony o NTP), lo configuran con un servidor de tiempo genérico
público (`pool.ntp.org`) y aseguran su correcta activación y verificación.

### Objetivo

 * Detectar si `chrony` o `ntp` están instalados.
 * Instalar `chrony` si no hay ningún servicio de sincronización.
 * Configurar el servicio correspondiente para sincronizar contra `pool.ntp.org`.
 * Activar y reiniciar el servicio.
 * Verificar el estado de sincronización.

## Script para Debian/Ubuntu

    ```wp-block-preformatted
    #!/bin/bashNTP_SERVER="pool.ntp.org"CHRONY_CONF="/etc/chrony/chrony.conf"NTP_CONF="/etc/ntp.conf"check_installed() {    dpkg -l | grep -qw "$1"}configure_chrony() {    echo "Configurando Chrony..."    sed -i 's/^pool/#pool/g' $CHRONY_CONF 2>/dev/null    sed -i 's/^server/#server/g' $CHRONY_CONF 2>/dev/null    echo "server $NTP_SERVER iburst" >> $CHRONY_CONF    systemctl enable chrony    systemctl restart chrony}configure_ntp() {    echo "Configurando NTP..."    sed -i 's/^server/#server/g' $NTP_CONF 2>/dev/null    echo "server $NTP_SERVER iburst" >> $NTP_CONF    cat <<EOF >> $NTP_CONFrestrict default kod nomodify notrap nopeer noqueryrestrict 127.0.0.1restrict ::1EOF    systemctl enable ntp    systemctl restart ntp}echo "Comprobando si chrony o ntp están instalados..."if check_installed chrony; then    echo "Chrony está instalado."    configure_chronyelif check_installed ntp; then    echo "NTP está instalado."    configure_ntpelse    echo "No hay ninguno. Instalando Chrony..."    apt update && apt install -y chrony    configure_chronyfi# Verificaciónecho "Verificando sincronización..."timedatectl statuschronyc tracking 2>/dev/null || ntpq -p
    ```

## Script para CentOS/RHEL

    ```wp-block-preformatted
    #!/bin/bashNTP_SERVER="pool.ntp.org"CHRONY_CONF="/etc/chrony.conf"NTP_CONF="/etc/ntp.conf"check_installed() {    rpm -q "$1" &>/dev/null}configure_chrony() {    echo "Configurando Chrony..."    sed -i 's/^pool/#pool/g' $CHRONY_CONF 2>/dev/null    sed -i 's/^server/#server/g' $CHRONY_CONF 2>/dev/null    echo "server $NTP_SERVER iburst" >> $CHRONY_CONF    systemctl enable chronyd    systemctl restart chronyd}configure_ntp() {    echo "Configurando NTP..."    sed -i 's/^server/#server/g' $NTP_CONF 2>/dev/null    echo "server $NTP_SERVER iburst" >> $NTP_CONF    cat <<EOF >> $NTP_CONFrestrict default kod nomodify notrap nopeer noqueryrestrict 127.0.0.1restrict ::1EOF    systemctl enable ntpd    systemctl restart ntpd}echo "Comprobando si chrony o ntp están instalados..."if check_installed chrony; then    echo "Chrony está instalado."    configure_chronyelif check_installed ntp; then    echo "NTP está instalado."    configure_ntpelse    echo "No hay ninguno. Instalando Chrony..."    yum install -y chrony    configure_chronyfi# Verificaciónecho "Verificando sincronización..."timedatectl statuschronyc tracking 2>/dev/null || ntpq -p
    ```

## Consideraciones finales

 * **Chrony** es recomendado para sistemas modernos, especialmente en entornos virtualizados
   o con redes intermitentes.
 * **pool.ntp.org** es una fuente pública fiable, pero en entornos corporativos 
   es recomendable configurar un servidor NTP interno sincronizado con fuentes autorizadas.
 * Ambos scripts están preparados para ejecutarse con privilegios de superusuario
   y realizar los cambios sin intervención manual.

Estos scripts son ideales para automatizar despliegues en entornos híbridos o heterogéneos,
simplificando la administración del tiempo en sistemas Linux.
