# Sincronización de Tiempo en Linux con Chrony, Scripts Automatizados para Entornos Debian/Ubuntu y RHEL

- Link: https://binariocero.com/linux/sincronizacion-de-tiempo-en-linux-con-chrony-scripts-automatizados-para-entornos-debian-ubuntu-y-rhel
- Published: 2025-07-27T12:18:06+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 servidores es esencial para garantizar
la coherencia en logs, autenticaciones, servicios distribuidos y tareas programadas.
Chrony es una alternativa moderna y eficiente a NTP (Network Time Protocol) tradicional,
recomendada por muchas distribuciones Linux como sincronizador por defecto.

En este artículo presentamos dos scripts Bash diseñados para automatizar la instalación,
configuración y verificación de Chrony, reemplazando cualquier instancia previa 
de NTP, tanto en sistemas basados en Debian/Ubuntu como en CentOS/RHEL. Los scripts
utilizan como servidor de tiempo principal el servicio público confiable `time.cloudflare.
com`.

## Script para Debian/Ubuntu con Chrony

Este script:

 * Elimina cualquier instalación previa de NTP.
 * Instala Chrony si no está presente.
 * Configura Chrony para usar el servidor `time.cloudflare.com`.
 * Habilita y reinicia el servicio.
 * Muestra el estado de sincronización.

    ```wp-block-preformatted
    #!/bin/bashDC_SERVER="time.cloudflare.com"CHRONY_CONF="/etc/chrony/chrony.conf"check_installed() {    dpkg -l | grep -qw "$1"}remove_ntp_if_exists() {    if check_installed ntp; then        echo "Eliminando NTP..."        systemctl stop ntp        systemctl disable ntp        apt remove --purge -y ntp    fi}install_chrony() {    echo "Instalando Chrony..."    apt update && apt install -y chrony}configure_chrony() {    echo "Configurando Chrony..."    sed -i 's/^pool/#pool/g' $CHRONY_CONF    sed -i 's/^server/#server/g' $CHRONY_CONF    echo "server $DC_SERVER iburst" >> $CHRONY_CONF    systemctl enable chrony    systemctl restart chrony}echo "Preparando sistema para usar Chrony..."remove_ntp_if_existsif check_installed chrony; then    echo "Chrony ya está instalado."else    install_chronyficonfigure_chrony# Verificaciónecho "Verificando sincronización..."timedatectl statuschronyc trackingchronyc sources -v
    ```

## Script para CentOS/RHEL con Chrony

Este script realiza la misma función adaptada al entorno de paquetes RPM (CentOS/
RHEL).

    ```wp-block-preformatted
    #!/bin/bashDC_SERVER="time.cloudflare.com"CHRONY_CONF="/etc/chrony.conf"check_installed() {    rpm -q "$1" &>/dev/null}remove_ntp_if_exists() {    if check_installed ntp; then        echo "Eliminando NTP..."        systemctl stop ntpd        systemctl disable ntpd        yum remove -y ntp    fi}install_chrony() {    echo "Instalando Chrony..."    yum install -y chrony}configure_chrony() {    echo "Configurando Chrony..."    sed -i 's/^pool/#pool/g' $CHRONY_CONF    sed -i 's/^server/#server/g' $CHRONY_CONF    echo "server $DC_SERVER iburst" >> $CHRONY_CONF    systemctl enable chronyd    systemctl restart chronyd}echo "Preparando sistema para usar Chrony..."remove_ntp_if_existsif check_installed chrony; then    echo "Chrony ya está instalado."else    install_chronyficonfigure_chrony# Verificaciónecho "Verificando sincronización..."timedatectl statuschronyc trackingchronyc sources -v
    ```

## Consideraciones Finales

 * **Servidor NTP utilizado**: En ambos scripts se ha configurado `time.cloudflare.
   com`, un servidor NTP confiable y de baja latencia. Puede reemplazarse fácilmente
   por cualquier otro servidor, ya sea público o interno.
 * **Seguridad**: Aunque Chrony es seguro por diseño, siempre es recomendable aplicar
   restricciones en redes productivas para evitar sincronizaciones no autorizadas.
 * **Automatización**: Estos scripts son ideales para ser usados en configuraciones
   automáticas vía Ansible, scripts de provisión o plantillas de imágenes.
