Como hacer backups completos en linux

A veces, nos encontramos con la necesidad de hacer una copia de seguridad a un equipo linux, ya sea desktop o server, podemos backupear directorios importantes, o hacer un full backup de todo el sistema.

Siempre es recomendable hacer backups, de todo, aunque no sea lo mas divertido hacerlos, créeme, la perdida de información es una de las peores catástrofes en el mundo informático, no solo la pérdida de datos en una DB, sino también podemos perder código/scripts/diseños etc, que nos demandará tiempo volver a escribir.

La forma más fácil de hacer un backup de forma manual, es con el comando tar que nos crea un archivo comprimido y es fácil de usar.

La sintaxis es la siguiente:

tar [parámetros]

Las operaciones mas usadas son:

  • -z: Comprime usando gzip
  • -c: Crea el archivo
  • -v: Verbose mode. (Muestra el progreso mientras se crea el archivo)
  • -f: Para indicar el nombre del archivo
  • -p Conserva los permisos de los archivos
  • -x Extraer

Ejemplo de uso:

Para comprimir un directorio completo, usamos lo siguiente:

tar -zcvf backup-home.tar.gz /home/*  –> Hace un backup de todos los archivos que estan en el directorio home.

Backup del sistema completo:

Si queremos hacer un backup completo del sistema, para que en caso de una perdida total podamos restaurar nuestro servidor de manera completa, datos/programas/configs…  TODO…  debemos ejecutar esto:

tar cvpzf /backup-full.tar.gz –exclude=/proc –exclude=/lost+found –exclude=/backup-full.tar.gz –exclude=/mnt –exclude=/sys –exclude=dev/pts /

Importante: la barra del final “/” no es un error, eso le dice haga el backup desde el root “/”.
Todos esos “exclude” son, como su nombre lo dice, para excluir directorios que el sistema llena con archivos dinamicos, que van a producir errores a la hora del backup, y no son importante.

Como restaurar los backups:

Para restaurar un backup, se utiliza el comando -x

tar -zxvpf /fullbackup.tar.gz  –> extrae los contenidos en el directorio actual, conservando los permisos (-p) .

tar -zxvf backup-home.tar.gz  –> extrae los contenidos en el directorio actual.

tar -zxvf backup-home.tar.gz /home –> extrae los contenidos en /home.

Running php-fpm and nginx processes in the same container with supervisord
3 May, 2020
Instalar paquetes en versiones viejas de Ubuntu
13 August, 2011
Vulnerabilidad en WordPress Superpuperdomain2.com
18 August, 2011
15 Comments
  • Reply
    Douglas Milano
    13 January, 2013 at 12:48 PM

    Gracias por esta herramienta, la verdad estaba como loco respaldando un servidor y con esto lo respaldé en 5 minutos.

    Saludos

  • Reply
    Nidia
    2 April, 2014 at 12:55 PM

    Hola,

    He ocupado este post para hacer mi backup, sin embargo me quedo horas atorada con /proc/kcore y no he podido finalizarlo.

    Alguna idea de porque suceda esto?? que puedo hacer???

    • Reply
      Lordblacksuca
      18 April, 2014 at 9:35 AM

      Hola!

      Podes agregar la carpeta /proc como parametro exclude. En el post está así.

  • Reply
    Antonio
    14 May, 2014 at 9:05 PM

    Es una gran ayuda.
    Tengo unas consultas. En el post indicas esto:

    tar cvpzf /backup-full.tar.gz …

    ¿Cómo funciona el comando? ¿Cuál es el nombre que tendrá el full backup?
    Además mencionas estos tres comando y sólo explicas 2.

    tar -zxvpf /fullbackup.tar.gz
    tar -zxvf backup-home.tar.gz –> extrae los contenidos en el directorio actual.
    tar -zxvf backup-home.tar.gz /home –> extrae los contenidos en /home.

    El primero, ¿que es lo que hace?. ¿Es acaso el nombre del fullbackup? Si es así, ¿cómo se especifico?

    • Reply
      Lordblacksuca
      15 May, 2014 at 10:44 AM

      Hola!
      Si haces tar cvpzf /backup-full.tar.gz … El nombre del archivo es backup-full.tar.gz y se va a guardar en el directorio raiz, “/”.

      Tenés razon! me falto la explicacion del primer comando. Ya se la agregue en el post. La diferencia del primero con el segundo es que el primero tiene un parametro p que hace que al extraer, conserve los permisos de los archivos.
      En el segundo y tercer caso, el nombre del archivo del backup es backup-home.tar.gz

      Saludos!

  • Reply
    victor
    28 August, 2014 at 2:48 AM

    Hola es lo mismo o que diferencias hay entre hacer:

    1- “tar -czvf o tar cvzf”

    2- comprimir haciendo “carpeta.tar.gz o carpeta.tgz”

    Recuerda que linux es key-sensitive

    • Reply
      Lordblacksuca
      28 September, 2014 at 1:12 PM

      Hola!
      #1 depende, el guión (-) indica que lo que sigue son comandos. Sin embargo hay programas que soportan comandos sin guión. Para estar seguro, hay que leer el manual de cada programa, “man tar”. Si lo probaste sin guión y funciona está bien!
      #2 la extensión es solo descriptiva, .tgz es compatible con sistemas que soporten extensiones de solo 3 letras, pero .tar.gz es más descriptiva y es totalmente compatible con los sitemas actuales.

  • Reply
    eder
    6 January, 2015 at 6:19 PM

    hola a pesar de utilizar -exclude=/proc lo sigue respaldando

  • Reply
    Juan
    26 April, 2015 at 11:14 AM

    Hola.

    ¿En qué carpeta o directorio se debe extraer el Backup para que toda la info y configuración quede ubicada en sus respectivos directorios originales?

    Muchas gracias.

     

    • Reply
      Lordblacksuca
      16 May, 2015 at 3:48 PM

      El backup se debe restaurar en el directorio raiz “/”

  • Reply
    Cerbero
    20 August, 2015 at 8:33 AM

    Hola Diego,

    Lo primero, gracias por tu entrada acerca de cómo crear respaldos. Vengo usando tu tutorial desde hace unos meses para tener siempre una copia de seguridad de mi servidor dedicado.

    Pero hoy me ha surgido una duda. En caso de catástrofe, por ejemplo, avería del disco duro, ¿cómo restauro la copia exactamente?

    Quiero decir: La empresa de hosting me cambia el disco duro por uno nuevo limpio, sin particiones. ¿Instalo CentOS (mi S.O.) por defecto y luego sobreescribo todo restaurando mi tar.gz?

    ¿Y si el disco es de diferente tamaño y las particiones distintas, cómo afectará?

    Estoy un poco perdido la verdad, Linux no es un sistema en el que me mueva cómodo y tengo terror a perder todo el trabajo por una avería en el disco duro.

    ¿Conoces algún otro sistema de copia de seguridad en el que sea posible por ejemplo crear una imagen completa del disco, particiones incluidas?

    Gracias por anticipado,

    Un saludo!!

    • Reply
      Lordblacksuca
      2 September, 2015 at 2:19 AM

      Hola! no, estas mezclando las cosas…

      La solución de backup que muestro en este post, solo guarda archivos, no incluye puntos de montaje ni otras particiones. No es una “imagen” del disco.
      En el caso de una catastrofe, que necesites restaurar particiones del disco, necesitaras restaurar una imagen. Por lo general este tipo de backups se hacen, no desde el sistema operativo, sino que el hosting te lo ofrece.

      Por ejemplo, yo uso VPS, y el proveedor de las VPS tiene un sistema de backups diarios… si se rompe algo, simplemente se restaura la “imagen” completa de la VPS, en un proceso que demora varias horas, ya que se restaura bit a bit los datos del disco virtual.

      Este proceso de restaurar imágenes restaura todo desde cero, no hace falta reinstalar el sistema operativo, pero la técnica explicada en este post, para funcionar bien, requiere que se instale el sistema operativo previamente.

      Espero haber sido claro en la respuesta, cualquier cosa me preguntas! saludos!

      • Reply
        Cerbero
        5 June, 2016 at 3:48 PM

        Hola Diego,

        Siento mucho haber tardado tanto en contestar.

        Gracias por tu respuesta!!

  • Reply
    JuanGG
    6 May, 2016 at 3:08 AM

    hola Diego,

    Nosotros utilizamos LVM para nuestras particiones, se nos ha presentado el caso de sacar un backup de un filesystem dedicado, el cual se encuentra montado en una ruta X –  “/ejemplo/prueba”, la cuestión es que si necesito sacar el backup tengo que desmontar la carpeta para respaldar la data que se encuentra en el Logical Volume????.

    Nota: Es una duda aparte, gracias de Antemano y Saludos …. muy buen post!

  • Reply
    esr
    13 March, 2017 at 9:14 AM

    Hola Diego,

    Quisiera utilizar el backup que he hecho de un ordenador en el que tengo ubuntu y windows para copiarlo en otro ordenador que también tiene ubuntu y windowa. He copiado todo el root de la partición de ubuntu con el comando que pones en este post y quisiera descomprimirlo en el otro ordenador sin que me de problemas. Soy nuev ane linux, ¿Cuáles seráin los pases exactos que debería dar, una vez hecho un full backup del ordenador origen? Un saludo

Leave a Reply

Your email address will not be published. Required fields are marked *