V
e
r

l
i
s
t
a
d
o

tractatus@lapipaplena:/# _

 

lsyncd

[Live SYNCing Daemon]. Daemon que se utiliza con rsync para sincronizar directorios locales con una máquina remota. Observa los cambios en los directorios locales y luego lanza procesos de rsync para sincronizar esos cambios con un destino remoto o local en lugar de realizar escaneos programados.

$ rsync -avz --delete /var/www/html/ usuario@servidor-remoto.com:/var/www/html/

Nota.- Antes de iniciar lsyncd, a menudo es una buena idea realizar un rsync inicial completo manualmente del origen al destino. Esto asegura que el destino ya esté sincronizado, y lsyncd solo necesite manejar los cambios posteriores.

Archivo de Configuración de Ejemplo

# nano /etc/lsyncd/lsyncd.conf

settings {

logfile = "/var/log/lsyncd/lsyncd.log",

statusFile = "/var/log/lsyncd/lsyncd.status",

maxProcesses = 2,

delay = 1,

}

sync {

default.rsync,

source = "/var/www/html",

target = "usuario@servidor-remoto.com:/var/www/html",

rsync = {

archive = true,

compress = true,

perms = true,

owner = true,

group = true,

exclude = {

".git/",

"cache/",

"tmp/*",

},

_extra = {"--delete"},

},

}

Explicación de la Configuración:

Bloque settings {}:

logfile: Ruta al archivo de registro de lsyncd. Esencial para la depuración.

statusFile: Ruta a un archivo donde lsyncd escribe su estado (por ejemplo, número de procesos rsync activos).

maxProcesses: Limita el número de procesos rsync que pueden ejecutarse simultáneamente. Útil para evitar sobrecargas.

delay: El tiempo que lsyncd espera después de un evento antes de iniciar un rsync. Esto ayuda a agrupar múltiples cambios rápidos en una sola transferencia.

Bloque sync {}:

default.rsync: Especifica que esta sincronización utiliza el comportamiento predeterminado de rsync. lsyncd también soporta default.direct para copias de local a local sin rsync.

source: El directorio local a monitorear.

target: El destino remoto en formato usuario@host:ruta.

rsync = {}: Esta tabla anidada te permite pasar opciones de rsync directamente.

archive = true: Esto es una abreviatura de -a, que incluye -rlptgoD [recursivo, enlaces, permisos, tiempos, grupo, propietario, dispositivos].

compress = true: Usa -z para compresión durante la transferencia.

perms, owner, group: Banderas específicas de rsync para preservar los atributos de los archivos.

exclude: Una tabla de patrones a excluir de la sincronización. Similar a rsync --exclude.

_extra = {"--delete"}: Indica a rsync que elimine los archivos en el destino que ya no existen en el origen.

Después de crear o modificar el archivo de servicio para ssystemd:

# nano /etc/systemd/system/lsyncd.service

[Unit]

Description=Servicio de sincronización Lsyncd

After=network.target

[Service]

Type=forking

ExecStart=/usr/bin/lsyncd /etc/lsyncd/lsyncd.conf

ExecReload=/bin/kill -HUP $MAINPID

PIDFile=/var/run/lsyncd.pid

Restart=on-failure

[Install]

WantedBy=multi-user.target

Se podrán usar las clásicas opciones de systemctl

# systemctl daemon-reload
releer la configuración
# systemctl enable lsyncd.service
activar servicio al inicio
# systemctl status lsyncd.service
ver el estado del servicio
Navegando por staredsi.eu aceptas las cookies que utilizamos en esta web. Más información: Ver política de cookies
[0] 0:bash*
4073 entradas - Acerca del Tractatus
La Pipa Plena 2025