BorrowBits
Bin bash
Portada » Blog » Computación » Programación » Tutorial » [Administra tu Servidor] ¿Cómo hacer copias periódicas en Linux? Utiliza la shell.

[Administra tu Servidor] ¿Cómo hacer copias periódicas en Linux? Utiliza la shell.

Bin bash

Tanto si eres el administrador de un servidor con Linux o simplemente tienes instalada una de sus distribuciones en tu portátil personal, seguro que te ves en la necesidad de hacer copias de algunos archivos de configuración o incluso de todo el sistema de forma periódica.

Hay una forma sencilla de hacerlo sin tener que instalarte nada,  utilizando un shell script. Es decir, un script que te permita decir de qué directorios se hará el backup, dónde se guardará la copia comprimida y con qué periodicidad se hará. También explicaré como recuperar esa copia almacenada. Esta información y mucho más la puedes encontrar en la ayuda de Ubuntu.

¿Cómo hacer la copia de seguridad?

Crea un archivo llamado backup.sh y copia en él lo siguiente:

#!/bin/sh
####################################
## Backup script.
#####################################
# ¿De que queremos hacer el Backup?
backup_files="/home/var/mis_fotos"
# ¿Donde lo vamos a almacenar?
dest="/home/backup"
# Crear nombre del archivo
day=$(date +%A)
hostname=$(hostname -s)
archive_file="$hostname-$day.tgz"
# Mostramos por consola que ha comenzado el Backup y la fecha.
echo "Backing up $backup_files to $dest/$archive_file"
date
echo
# Copiamos los archivos comprimiéndolos con tar.
tar czf $dest/$archive_file $backup_files 
# Mostramos por consola el final del Backup y la fecha.
echo
echo "Backup finished"
date
# Long listing of files in $dest to check file sizes.
ls -lh $dest
  1. Tendremos que indicar la ruta donde están los archivos que queremos hacerle una copia de seguridad y se guardarán en la variable backup_files.
     backup_files="/ruta_del_archivo_a_copiar"
  2. Indica donde se almacenará la copia de la misma forma. (Debe de ser una localización que ya haya sido montada).
     dest="/ruta_de_la_carpeta_donde_se_guardara"
  3. Luego indicamos el nombre que tendrá el archivo donde se guardará nuestra copia de seguridad comprimida.
  4. Con el comando tar se creará el archivo comprimido que contendrá la información copiada.
    • c: crea el archivo.
    • z: comprime el archivo.
    • f: indica que se dará un nombre al archivo tar.
  5. Finalmente se mostrará un listado con el comando ls –lh (lista larga y legible) con el contenido del directorio que hemos elegido como destino de nuestro backup.

¿Cómo ejecutar el script?

En una consola escribe:

sudo bash backup.sh

¿Cómo programar su ejecución de forma periódica?

Utiliza el comando cron para especificar qué días y a qué hora se ejecutará. Para ello tienes que añadir una entrada nueva:

Sudo crontab –e

Se nos abrirán las tareas ya programadas. Añade la siguiente línea:

# m h dom mon dow   command
0 3 * * * bash /home/backup.sh
  • m: minuto (de 0 a 59)
  • h: hora (de 0 a 23)
  • dom: día del mes.
  • mon: mes (1 a 12)
  • command: el fichero a ejecutar.

Guarda el archivo y ya tendríamos programada su ejecución. En el ejemplo se hará la copia a las 3.00 a.m todos los días.

¿Cómo restaurar la copia guardada?

Ejecuta el siguiente comando en el directorio destino para descomprimir el backup que indicamos en la ruta:

sudo tar -xzvf /home/backup/host-Monday.tgz

¿Utilizas este método? ¿Conoces alguna mejora para hacerlo? Compártelo con nosotros.

Rafa M.

Ingeniero de Telecomunicación - DevOps

4 comentarios

  • Información Bitacoras.com

    Valora en Bitacoras.com: Tanto si eres el administrador de un servidor con Linux o simplemente tienes instalada una de sus distribuciones en tu portátil personal, seguro que te ves en la necesidad de hacer copias de algunos archivos de configuració…

  • Buen artículo, sencillo y muy bien explicado.
    Si le añades cómo hacer backup de una base de datos en el script, sería de matrícula !
    Gracias.

  • ¿Como puedo hacer esto mismo pero que el respaldo lo tome de una maquina con windows?
    Intente hacer algo parecido pero manda tiempo de espera en conexión con el equipo.

Rafa M.

Ingeniero de Telecomunicación - DevOps

Suscríbete

¡Sácale el máximo partido a BorrowBits!

Apúntate para seguir recibir por email las nuevas publicaciones, noticias sobre Blockchain pre-filtradas y material exclusivo para suscriptores. De momento es gratis:

{subscription_form_1}

Categorías

Bits del pasado

Sitio patrocinado por:

JitKey rentabilización apartamentos turísticos

JITKey.- Startup enfocada en la gestión de alojamientos turísticos.