Hacer una copia de seguridad de un directorio en Linux usando un script de Shell


Hay varias opciones para hacer una copia de seguridad de sus datos en Linux. Puede usar algunos programas de software disponibles libremente, como fwbackups y Sbackup. Sin embargo, hay un método simple de realizar una copia de seguridad de un directorio sin instalar ningún software adicional.

Crearemos un script de shell utilizando variables, el comando tary la fechacomando para crear un archivo de copia de seguridad con fecha de un directorio, con sus subdirectorios.

Un script de shell es esencialmente un archivo que contiene una lista de comandos que se ejecutan en secuencia. Si tiene una serie de comandos que ejecuta regularmente en orden, es útil crear un script de shell que contenga estos comandos. Entonces, solo tiene que ejecutar el archivo de script para ejecutar los comandos.

Crear el archivo de script de shell

Para este ejemplo, vamos a crear un script de shell para hacer una copia de seguridad de un directorio que contiene archivos para una guía de usuario. Estamos utilizando el entorno Gnomeen Ubuntu.

Primero, acceda a su directorio de inicio, seleccionando Carpeta de iniciodel Lugaresmenú. El Explorador de archivosse abre en su directorio de inicio.

Opening the home folder

Vamos a crear un nuevo archivo vacío en el que ingresará los comandos para realizar la copia de seguridad. Haga clic con el botón derecho en el panel derecho y seleccione Crear documento | Archivo vacíoen el menú emergente.

Creating an empty shell script file

Se agrega un archivo a la lista y está listo para ser renombrado. Escriba un nombre para el archivo, dando al archivo una extensión de .sh.

New file ready to be renamed

Para este ejemplo, llamamos a nuestro archivo user_guide_backups.sh.

Shell script file renamed

Ahora necesitamos agregar los comandos al archivo. Haga clic con el botón derecho en el nombre del archivo y seleccione Abrir con gediten el menú emergente.

Opening shell script file with gedit

El archivo se abre en gedit. Ingrese las siguientes líneas en el archivo y haga clic en Guardar. El propósito de cada línea se detalla a continuación.

NOTA:También puede copiar el siguiente texto y pegarlo en gedit. Asegúrese de cambiar & lt; username & gt;a su nombre de usuario.

#!/bin/bash
SRCDIR="/home/<username>/Documents/my_work/" DESTDIR="/home/<username>/Backups/" FILENAME=ug-$(date +%-Y%-m%-d)-$(date +%-T).tgz tar --create --gzip --file=$DESTDIR$FILENAME $SRCDIR

Editing shell script file in gedit

Line por línea Descripción

La siguiente tabla describe lo que cada línea se encuentra en el archivo de script del shell.

Línea # Descripción 1 Esta línea debe ser la primera línea en un script de shell bash, que es el tipo predeterminado de script. 2 Esta línea configura una variable llamada SRCDIRy establece el valor de la misma en el directorio del que se realizará la copia de seguridad.
NOTA:Asegúrese de reemplazar & lt; username & gt;con su nombre de usuario. 3 Esta línea configura una variable llamada DESTDIRy establece el valor de la misma en el directorio en el que se escribirá el archivo de copia de seguridad.
NOTA:asegúrese de reemplazar & lt; username & gt;con su nombre de usuario. 4 Esta línea configura una variable llamada NOMBRE DE ARCHIVOy establece el valor utilizando texto y variables que contienen el comando fechapara agregar la fecha y hora actual al nombre del archivo. Por ejemplo, el nombre del archivo podría ser ug-20100212-13: 03: 45.tgz.
NOTA:cuando utilice una variable, comience siempre con el signo de dólar. ($). Si usa un comando como parte de una variable, encierre el comando y las opciones para el comando entre paréntesis. 5 Esta línea es el comando tarcon la siguiente función y opciones añadidas.
- crear Esta función crea un nuevo archivo (o trunca uno antiguo si ya existe el nombre de archivo especificado) y escribe los archivos o directorio con nombre en él. -gzip Esta opción le dice a tar que comprima los archivos en el archivo utilizando la utilidad gzip. - archivo Esta opción le asigna al archivo el nombre de archivo que se usará. En este caso, armamos el nombre de archivo utilizando las variables DESTDIR, FILENAMEy SRCDIR.

Editar los permisos en el archivo de script de shell

Antes de ejecutar su script, debe asegurarse de que el archivo tiene los permisos correctos. Para hacerlo, abra nuevamente su carpeta de iniciocomo se mencionó anteriormente y haga clic con el botón derecho en el archivo de comandos del shell. Seleccione Propiedadesen el menú emergente.

Getting the properties of the shell script file

Aparece el cuadro de diálogo Propiedades. Asegúrese de que la casilla de verificación Ejecutaresté seleccionada.

Shell script file permissions

Haga clic en Cerrar.

Ejecutar el script de shell

Para ejecutar el script de shell, abra una ventana de terminal seleccionando Accesorios | Terminaldel menú Aplicaciones.

Opening a Terminal window

Cuando la ventana Terminalse abre, debe estar en su carpeta de iniciode forma predeterminada. Escribir pwden la línea de comando y presionar enter confirma este hecho. Cuando se le solicite, escriba ./ user_guide_backups.shy presione Entrar.

Running the shell script

Debería tener un archivo .tgzen la carpeta Copias de seguridad en su carpeta principal. Si hace clic con el botón derecho en el nombre del archivo, verá varias opciones para abrir el archivo en uno de los programas de archivo disponibles o extraer los archivos directamente a la carpeta Copias de seguridadutilizando Extraer aquícomando.

Pop-up menu options for .tgz file

Más información

Los siguientes enlaces proporcionan más información sobre los scripts de shell, tary los comandos de fechay otros comandos de Linux.

Creación de scripts

Una guía rápida para escribir guiones usando el shell bash

Bash Shell Scripting - Guía de 10 Segundos | Todo sobre Linux

Manual de referencia de Bash

Comandos de Linux

alquitrán MAN página

fecha de la página de MAN

comandos bash - Linux MAN Pages

Explorar estas páginas lo ayudará a construir sus propios scripts de shell bash útiles.

Script para Crear BackUP en DEBIAN LINUX

Artículos Relacionados:


16.02.2010