Me gustaría reflejar un directorio de copia de seguridad utilizado por rsnapshot a una segunda ubicación para más seguridad. Idealmente, la solución usaría rsync con ssh. ¿Qué argumentos debo proporcionar a rsync para preservar los enlaces duros (creados por rsnapshot) y los enlaces simbólicos, para eliminar archivos, copiar recursivamente, eliminar archivos en el destino, etc.? Todos los archivos están en sistemas de archivos ext3. Además, ¿qué puedo hacer para evitar la posibilidad de que si la fuente está corrupta los defectos se rsynced al espejo?Mirror rsnapshot directorio de copia de seguridad
Respuesta
Creo que las opciones para hacer lo que desea están ampliamente documentadas en la página del manual rsync
. En particular, la opción -H
(--hard-links
) habilita la detección de enlaces duros, y --delete
hará que rsync elimine cosas en el destino que no existen en el origen. Así que tal vez algo como:
rsync -aH --delete /path/to/src/ /path/to/destination
Por otra parte, ¿qué puedo hacer yo para evitar la posibilidad de que si está dañada la fuente de los defectos se rsynced al espejo?
Bueno, eso es complicado. ¿Cómo se detecta la corrupción? Creo que la única solución real es escalonar la copia de seguridad de su copia de seguridad (es decir, realizar copias de seguridad reales en su destino principal y luego sincronizar eso con su destino secundario inmediatamente antes de la próxima ejecución de la copia de seguridad). De esta forma, si detecta un problema, tiene hasta la próxima ejecución de respaldo para recuperar las cosas.
Una solución diferente sería tener rsnapshot
copia de seguridad en varios destinos, por lo que está generando copias de seguridad de su fuente original en dos ubicaciones distintas. De esta forma, si uno se daña, el segundo no debería verse afectado.
Asegúrese de que todas las opciones estén en la página de manual. Solo quería asegurarme de que no olvidara ninguno. Pero la opción -a parece ser bastante compacta. La rsnapshot de dos ubicaciones no será factible ya que los dos destinos no estarán disponibles al mismo tiempo. ¿No sería posible sincronizar siempre solo las instantáneas más nuevas al espejo? De esta forma, las instantáneas anteriores en esta ubicación se conservarán incluso si están dañadas en la ubicación principal.Por supuesto, necesitaría repetir el cambio de nombre que realiza rsnapshot cuando agrega una instantánea ... – highsciguy
Para evitar la copia de datos corruptos, puede mantener una copia de seguridad semanal y esperar que note la corrupción en la fuente antes de perder todas sus copias de seguridad. La mejor manera sería usar -c y luego comparará las sumas de comprobación tanto de origen como de destino para determinar si se debe copiar el archivo. El único inconveniente es que debe leer todo el archivo, haciendo que la copia de seguridad sea un proceso más lento.
#!/bin/sh
# Create a Backup of Today
# Definitions
sevendaysago=$(date --date='6 days ago' +%Y-%m-%d-%A)
# Delete backups from 7 days ago
rm -rf /storage/backups/$sevendaysago
mkdir -p /storage/backups/`date +\%Y-\%m-\%d`-`date +\%A`/$host/$username
rsync -aHvz /storage/`date --date=yesterday +\%Y-\%m-\%d`-`date --date=yesterday +\%A`/$host/$user/ /storage/`date +\%Y-\%m-\%d`-`date +\%A`/$host/$user/
rsync -acHvz -e ssh --delete --exclude='logs' [email protected]:/home/tim/ /storage/`date +\%Y-\%m-\%d`-`date +\%A`/$host/$user/
- 1. ¿Es suficiente "git push --mirror" para hacer una copia de seguridad de mi repositorio?
- 2. Configuración de copia de seguridad de Eclipse
- 3. Permisos de copia de seguridad
- 4. Seguridad de directorio
- 5. ¿Es suficiente git push --mirror como una copia de seguridad para el repositorio que se usa con git-svn?
- 6. Copia de seguridad de datos de Android 2.2: ¿cómo hacer una copia de seguridad de DefaultSharedPreferences?
- 7. plan de copia de seguridad de MongoDB
- 8. Copia de seguridad de usuarios de MySQL
- 9. Copia de seguridad del repositorio local Mercurial
- 10. Restablecer acceso de copia de seguridad denegado
- 11. Copia de seguridad automática de Amazon RDS
- 12. Estrategia de copia de seguridad para django
- 13. Copia de seguridad del área de trabajo de Eclipse
- 14. Copia recursiva del directorio
- 15. ¿Cómo hacer una copia de seguridad de Zookeeper?
- 16. Android SharedPreferences Copia de seguridad no funciona
- 17. Copia de seguridad incremental Comando Linux
- 18. Ruby copia de seguridad joya - configuraciones compartidas?
- 19. mongodb: cómo hacer copia de seguridad de mongodb
- 20. proyecto de copia de seguridad que utiliza git
- 21. Copia de seguridad de servidor SQL a UNC
- 22. obtener cuando se hizo la última copia de seguridad del directorio activo
- 23. Copia de archivos desde un directorio en un directorio existente
- 24. Maven proxy vs mirror
- 25. SHARED_DATABASE (DATABASE_URL) ---- copia de seguridad ---> error! debe eliminar una copia de seguridad antes de crear uno nuevo
- 26. Copia de seguridad de almacenamiento de datos de GAE/J
- 27. Problemas de restauración de copia de seguridad de SQL Server?
- 28. Aplicación de copia de seguridad y sincronización de contactos
- 29. Práctica recomendada de copia de seguridad de Big Database
- 30. Número infinito de archivos de copia de seguridad con RollingFileAppender
he encontrado que hay un script llamado rsnapshot-copia que está destinado para la sincronización inicial: [rsnapshot-copia] (http://cpansearch.perl.org/src/DCANTRELL/App-Rsnapshot-1.999_00002/utils/rsnapshot-copy). En el encabezado de este archivo, indica: 'rsnapshot-copy actualmente no está diseñado para la duplicación incremental de una instantánea raíz (aunque se puede agregar un modo incremental en el futuro). ¿Alguna idea de cómo respaldar esto? – highsciguy
Otra idea es usar los archivos de registro rsnapshot (quizás primero modifique las rutinas de registro internas según corresponda) para crear un script de shell que ejecute exactamente las mismas operaciones mv y rsync que rsync ha realizado en la copia de seguridad primaria también para la copia duplicada de la copia de seguridad . – highsciguy
Para aclarar un poco, donde veo el problema con un rsync normal (ver respuesta a continuación). Si un archivo en las rutas de acceso de rsnapshot se corrompe (por ejemplo, debido a un error en el disco), debido al uso de enlaces duros, se dañará en todas las instantáneas más nuevas, a menos que se haya cambiado alguna vez. Esto significa que el archivo está perdido. Si realizo una rsync automática regular en una copia duplicada de la copia de seguridad, con el tiempo sobreescribiré el archivo en el espejo con su versión dañada sin darme cuenta. La pregunta es si hay una solución que evite esto. – highsciguy