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 utilizar algunos programas de software disponibles gratuitamente, como fwbackups y Sbackup . Sin embargo, existe un método sencillo para hacer una copia de seguridad de un directorio sin instalar ningún software adicional.

Crearemos un script de shell usando variables, el comando tar y el comando date para crear un archivo de copia de seguridad fechado 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. Luego, solo tiene que ejecutar el archivo de script para ejecutar los comandos.

Creación del 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 del usuario. Estamos usando el entorno Gnome en Ubuntu .

Primero, acceda a su directorio de inicio seleccionando Carpeta(Home Folder) de inicio en el menú Lugares . (Places)El Explorador(File Browser) de archivos se abre en su directorio de inicio.

Abriendo la carpeta de inicio

Vamos a crear un nuevo archivo vacío en el que introduciremos los comandos para realizar la copia de seguridad. Haga clic(Right-click) derecho en el panel derecho y seleccione Create Document | Empty File en el menú emergente.

Creación de un archivo de script de shell vacío

Un archivo se agrega a la lista y está listo para ser renombrado. Escriba(Type) un nombre para el archivo, dándole al archivo una extensión de .sh .

Nuevo archivo listo para ser renombrado

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

Archivo de script de shell renombrado

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

Abrir archivo de script de shell con gedit

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

NOTA:(NOTE:) También puede copiar el siguiente texto y pegarlo en gedit . Asegúrese de cambiar <username> 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

Edición del archivo de script de shell en gedit

Descripción línea por línea

La siguiente tabla describe qué es cada línea en el archivo de script de shell.

Line # Description
1 This line must be the first line in a bash shell script, which is the default type of script.
2 This line sets up a variable called SRCDIR and sets the value of it to the directory to be backed up.
NOTE: Be sure to replace <username> with your username.
3 This line sets up a variable called DESTDIR and sets the value of it to the directory into which the backup file will be written.
NOTE: Be sure to replace <username> with your username.
4 This line sets up a variable called FILENAME and sets the value using text and variables containing the date command to add the current date and time to the filename. For example, the filename might be ug-20100212-13:03:45.tgz.
NOTE: When using a variable, always start it with the dollar sign ($). If you use a command as part of a variable, enclose the command and the options for the command in parentheses.
5 This line is the tar command with the following function and options added.

–create This function creates a new archive (or truncates an old one if the filename specified already exists) and writes the named files or directory to it.
–gzip This option tells tar to compress the files in the archive using the gzip utility.
–file This option gives tar the filename to use. In this case, we assembled the filename using the DESTDIR, FILENAME, and SRCDIR variables.

Edición de los permisos(Permissions) en el archivo de script de Shell(Shell Script File)

Antes de ejecutar su secuencia de comandos, debe asegurarse de que el archivo tenga los permisos correctos. Para hacer esto, abra su Carpeta(Home Folder) de inicio nuevamente como se mencionó anteriormente y haga clic con el botón derecho en el archivo de script de shell. Seleccione Propiedades(Properties) en el menú emergente.

Obtener las propiedades del archivo de script de shell

Aparecerá el cuadro de diálogo Propiedades . (Properties)Asegúrese(Make) de que la casilla de verificación Ejecutar(Execute) esté seleccionada.

Permisos de archivo de script de shell

Haga clic en Cerrar(Close) .

Ejecutar el script de Shell

Para ejecutar el script de shell, abra una ventana de terminal seleccionando Accessories | Terminal desde el menú Aplicaciones .(Applications)

Abriendo una ventana de Terminal

Cuando se abra la ventana de Terminal , debería estar en su Carpeta(Home Folder) de inicio de forma predeterminada. Escribir pwd en la línea de comando y presionar enter confirma este hecho. Cuando se le solicite, escriba ./user_guide_backups.sh y presione Entrar(Enter) .

Ejecutando el script de shell

Debe tener un archivo .tgz en la carpeta Copias de (.tgz)seguridad(Backups) en su Carpeta(Home Folder) de inicio . 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 seguridad(Backups) mediante el comando Extraer aquí .(Extract Here )

Opciones del menú emergente para el archivo .tgz

Más información

Los enlaces a continuación brindan más información sobre los scripts de shell, los comandos tar y date , y otros comandos de Linux .

secuencias de comandos

Una guía rápida para escribir scripts usando el shell bash(A quick guide to writing scripts using the bash shell)

Bash Shell Scripting – 10 Seconds Guide | All about Linux

bash manual de referencia(Bash Reference Manual)

Comandos Linux

Página de hombre de alquitrán(tar MAN Page)

Fecha HOMBRE Página(date MAN Page)

Comandos bash – Páginas MAN de Linux(bash commands – Linux MAN Pages)

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



About the author

Soy ingeniero de software con más de 15 años de experiencia en Microsoft Office y Edge. También he desarrollado varias herramientas utilizadas por los usuarios finales, como una aplicación para rastrear datos de salud importantes y un detector de ransomware. Mis habilidades radican en desarrollar un código elegante que funcione bien en varias plataformas, además de tener una gran comprensión de la experiencia del usuario.



Related posts