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.

¿Trabajo programado utilizando una carpeta compartida de samba pre-montada, no estoy seguro/a si es seguro…?

Estoy usando fstab para montar una carpeta compartida de samba en el arranque.

//ip/compartido /mnt/compartido cifs credentials=/home/user/.smbcredentials,uid=user 0 0

y programé rsync mediante un trabajo cron para copiar el contenido a una unidad local una vez a la semana.

0 2 * * 7 /usr/bin/rsync -av –delete /mnt/compartido/ /mnt/respaldo/ –log-file=/var/log/rsyncbackup.log

Se me ocurrió que si el host no estaba disponible, /mnt/compartido estaría vacío. Si el trabajo cron se ejecutara, borraría todos los datos de mi unidad de respaldo local debido a la diferencia y la bandera –delete. Quiero mantener eso ya que quiero un clon de mi carpeta compartida.

Soy relativamente nuevo en Linux y estoy interesado en saber qué enfoque podría agregar una protección a esto. ¿Podría ejecutar “ls” para verificar si hay contenido y, si está presente, continuar? Si no, ¿qué aseguraría que no borre inadvertidamente todo en mi unidad de respaldo?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Una posible solución para agregar una protección a este escenario es utilizar una instrucción condicional en el comando rsync dentro del cron job. Esto verificará la presencia de datos en el share montado antes de iniciar la transferencia al backup mount.

    Por ejemplo, se podría modificar el cron job para incluir lo siguiente:

        0 2 * * 7 if [ "$(ls -A /mnt/share)" ]; then /usr/bin/rsync -av --delete /mnt/share/ /mnt/backup/ --log-file=/var/log/rsyncbackup.log; fi
    

    Esto primero comprobará si hay contenido en el directorio /mnt/share utilizando el comando ls y, si los hay, procederá con el comando rsync. Si no hay contenido, no se ejecutará el rsync y se dejará el backup mount sin cambios.

    Otra opción podría ser crear un script que verifique la disponibilidad del share antes de ejecutar el comando rsync. Este script luego podría ser llamado dentro del cron job en lugar de llamar directamente al comando rsync.

    En general, la clave es asegurarse de que el comando rsync solo se ejecute cuando hay datos presentes en el share para evitar borrar accidentalmente el backup mount.

Comments are closed.