5 votos

Cómo extraer manualmente un conjunto de copia de seguridad hecha por duplicidad?

Tengo un conjunto de archivos en mi servidor web producido por la duplicidad de software:

  • duplicity-full.20110315T085334Z.vol1.difftar.gz
  • duplicity-full.20110315T085334Z.vol2.difftar.gz
  • duplicity-full.20110315T085334Z.vol3.difftar.gz
  • etc... (de 50 archivos, el tamaño total de alrededor de 1 Gb)

Copia de seguridad se ha realizado sin cifrado.

Mi actual proveedor de servicios de hosting no duplicidad en su servidor y no quieres instalar. ¿Cómo puedo descomprimir estos archivos usando SSH remoto de acceso? Tal vez hay algo de bash-script disponible para hacer eso?

8voto

Paul Whittaker Puntos 158

En caso de que alguien más viene a través de este (como sólo tengo) hay algunos razonablemente detallada (y sobre todo correcta) pasos por aquí.

Los detalles clave

El punto clave es descomprimir todos los de la duplicity-full.*.difftar.gz archivos en el mismo lugar, por lo que te deja con sólo dos snapshot/ y multivol_snapshot/ directorios.

Si su archivo está en snapshot/ , entonces estás listo. De lo contrario, buscar el directorio en multivol_snapshot/ en la ruta donde el archivo que solía ser: es necesario unir todos los archivos de este directorio para recrear el archivo original. Los archivos están numerados, y puede ser unido utilizando el cat comando. Dependiendo del tamaño de la original, puede haber muchas partes.

Problema con la traducción de las instrucciones originales

Las instrucciones vinculado anteriormente sugieren el uso de la cat * > rescued-file. Por desgracia, este enfoque simple falla si usted tiene más de 9 piezas. Desde * expande en orden alfabético, no en orden numérico, 10 estaría lista antes de 2, y el archivo sería reconstruido en el orden equivocado.

Solución

Un enfoque simple es recordar que el diccionario de la orden de no trabajar cuando los números son de la misma longitud, y que ? coincide con un carácter único. Así que si tu archivo más grande tiene tres dígitos, puede introducir manualmente:

cat ? ?? ??? > rescued-file

Agregar o quitar ? patrones como sea necesario, dependiendo del número de archivo más alto.

Secuencia de comandos

Si usted tiene un montón de archivos a recuperar y no le apetece escribir que para todos ellos, puede que prefieras usar un script como este. Las listas del directorio para cada archivo, elimina los duplicados de la lista, luego se va a cada directorio y crea un content de archivo de los fragmentos de allí. (spacer es sólo para hacer $1 .)

find multivol_snapshot/ -type f -printf '%h\0' | \
  sort -uz | \
  xargs -0 -n 1 sh -c 'cd "$1" ; cat $(ls | sort -n) > content' spacer

Ahora sólo tienes que agregar /content hasta el final de cualquier nombre de archivo que estabas buscando, y usted debe encontrar.

Limitaciones

Esto no restaurar alguno de los originales de los permisos de archivo o la propiedad. Asimismo, no se lidiar con copias de seguridad incrementales, pero luego el vinculado instrucciones también golpeó un poco de un callejón sin salida en este punto — que acaba de sugerir el uso de rdiff 'para unir los archivos juntos" y remite al lector a man rdiff.

2voto

black-tux Puntos 26

Acerca de cómo descargar el archivo y, a continuación, hacer como este: duplicidad scp://uid@other.host//usr/backup restored_dir (ejemplo desde el sitio oficial)

0voto

black-tux Puntos 26

Usted puede tratar de descomprimir los archivos y copiar los archivos necesarios. No sé cómo copia de seguridad de los archivos, pero creo que copiar los archivos a los directorios y gzip (o tar.gz)

0voto

black-tux Puntos 26

En tu caso, creo, es mejor usar software de copia de seguridad (o script) que puede ser extraído. Usted puede ver por backuppc, flaxbackup (no sé que va a trabajar en su host o no, si es un vps (o vds), pero si es sólo de hosting compartido no).

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: