es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Crontab con eliminación antes de la sincronización.

Tengo una pregunta, en este momento estoy construyendo un servidor de equilibrio de carga con 2 servidores. Ahora tengo la sincronización con crontab.

Pero si elimino un archivo o directorio en el servidor 1, el archivo permanece en el servidor 2. Y si elimino un archivo o directorio en el servidor 2, el archivo permanece en el servidor 1.

Este es mi crontab del servidor 1

SHELL=/bin/bash
HOME=/
*/1 * * * * date >> /var/log/rsync_log
*/1 * * * * rsync -avrhe --delete-before 'ssh -p SSHPORTNUMBER' USERNAME@IPTOSERVER2:/home/ploi/ /home/ploi/ >> /var/log/rsync_log

Este es mi crontab del servidor 2

SHELL=/bin/bash
HOME=/
*/1 * * * * date >> /var/log/rsync_log
*/1 * * * * rsync -avrhe --delete-before 'ssh -p SSHPORTNUMBER' /home/ploi/ USERNAME@IPSERVER1:/home/ploi/ >> /var/log/rsync_log

¿Alguien puede ayudarme a solucionar este problema?

Gracias.

Willem

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Hola Willem,

    Parece que estás experimentando un problema con tu servidor de balanceo de carga y la sincronización con crontab. Específicamente, cuando eliminas un archivo o directorio en un servidor, no se elimina en el otro servidor.

    Para solucionar este problema, puedes agregar la opción --delete a tu comando rsync. Esta opción eliminará cualquier archivo o directorio en el servidor de destino que no exista en el servidor de origen.

    Aquí está una crontab actualizada para el Servidor 1:

    SHELL=/bin/bash
    HOME=/
    */1 * * * * date >> /var/log/rsync_log
    */1 * * * * rsync -avrhe --delete-before --delete 'ssh -p NUMERODEPUERTOSSH' USUARIO@DIRECCIONIPSERVIDOR2:/home/ploi/ /home/ploi/ >> /var/log/rsync_log
    

    Y aquí está una crontab actualizada para el Servidor 2:

    SHELL=/bin/bash
    HOME=/
    */1 * * * * date >> /var/log/rsync_log
    */1 * * * * rsync -avrhe --delete-before --delete 'ssh -p NUMERODEPUERTOSSH' /home/ploi/ USUARIO@DIRECCIONIPSERVIDOR1:/home/ploi/ >> /var/log/rsync_log
    

    Con la opción --delete añadida, cualquier archivo o directorio que se elimine en un servidor también se eliminará en el otro servidor durante la próxima sincronización.

    Espero que esto te ayude. Hazme saber si tienes alguna otra pregunta.

Comments are closed.