Tengo dos discos duros de datos en mi servidor Linux y uso el segundo como respaldo para un primer disco.
Yo uso rsync para ese propósito. Un ejemplo sería:
rsync -r -v --delete /media/disk1/ /media/disk2/
Lo que esto hace es que copia cada archivo / directorio de / media / disk1 / a / media / disk2 / pero también elimina cualquier diferencia. Por ejemplo, digamos que los archivos A y B, pero no el archivo C están en el disco 1 , y en disco2 no hay A y B archivos, pero no es C. El resultado sería que después de que el comando en disco2 Tendría archivos Un y B, pero el archivo C se eliminaría, al igual que en el disco1 .
Ahora, un escenario bastante desastroso había cruzado por mi mente; ¿y si el disco 1 muere, el sistema continúa trabajando desde archivos de sistema están en mi disco del sistema, pero cuando intenta rsync copia de seguridad de mis datos sobre disco2 de rota el disco 1 , borra todos los archivos dedisk2 porque no puede leer nada en disk1 .
¿Es este un posible escenario, o hay una protección contra su construcción en rsync ?
Respuestas:
Siendo realistas, en ese escenario, el núcleo se asustaría, y obtendrías un montón de errores de E / S de disco antes de que rsync eliminara nada. Pero luego, si tuviera que reiniciar, es posible que / media / disk1 esté vacío y sin montar ... Entonces ...
En su script rsync, solo asegúrese de no ejecutar rsync si no hay ningún archivo en / media / disk1. Una manera fácil de hacerlo sería:
Esto hará que el script salga antes de ejecutar rsync en el caso de que el archivo de destino no exista.
fuente
Del manual de rsync:
fuente