Para poder realizar copias de seguridad en Linux mediante terminal, existen multitud de opciones. Lo primero que hay que tener en cuenta es el tipo de copia de seguridad: total, incremental o diferencial. Las herramientas que Linux tiene para realizar copias de seguridad son

Tar

El comando Tar permite realizar copia de un origen con una compresión de ficheros optima. Del mismo modo permitirá descomprimir y recuperar el contenido de un fichero previamente creado. La sintaxis del comando es la siguiente

tar [opciones] [archivo_destino] [archivo_origen]

Entre las opciones que se permiten se puede utilizar:

  • -c: Crea el archivo
  • -x: Extrae el contenido del archivo
  • -f: Crea un archivo con un nombre expecificado
  • -t: Lista cual es el contenido del archivo que se comprime / descomprime
  • -v: Opción Verbose para información añadida
  • -A: Concatena la compresión de archivos

Algunos ejemplos de su uso son:

#comprime todo el contenido de la carpeta scripts en scripts_comprimidos.tar
tar -cvf scripts_comprimidos.tar scritps
#descomprime el contenido del archivo scripts_comprimidos en la ubicación actual
tar -xvf scripts_comprimidos.tar
#realiza una volcado completo de la carpeta scrips a la particion sdb1
tar -cvf /dev/sdb1 /home/developandsys/scripts
#lista el contenido de un archivo comprimido
tar -tvf scripts_backup.tar
#descomprime el contenido del archivo scripts_comprimidos en la ubicación actual pero solo el archivo while_ejemplo
tar -xvf scripts_comprimidos.tar scripts/while_ejemplo

Rsync

Realiza copias de seguridad incrementarles. La sintaxis de este comando es:

rsync [opciones] [origen] [destino]
  • v: modo verboso.
  • r: copia datos en forma recursiva pero no mantiene permisos ni propietarios.
  • a: copia datos en forma recursiva y mantiene propietarios y permisos.
  • z: comprime los datos al copiar.
  • h: muestra datos de la sincronización de forma amigable para el usuario.

Algunos ejemplos de su uso son

#Copia de archivos en local del directorio /home/developandsystem/script al directorio creado en el momento de la sincronización /home/developandsystem/script_bk
rsync -avz /home/developandsystem/script /home/developandsystem/script_bk

En el caso de querer hacer una sincronización entre máquinas remotas, se necesita utilizar el protocolo ssh mediante la siguiente sintaxis

rsync [opciones] -e ssh [origen] [destino]

Cuando el origen o el destino sea el acceso remota se accederá mediante la sintaxis

usuario@ip_maquina:/ruta/directorio

Un ejemplo de esto sería

#realiza una copia remota a un ordenador con un usuario llamado developandsystem y cuya ip del equipo es 192.168.0.170
rsync -avz -e ssh /home/developsystem/scripts developandsystem@192.168.0.170:/home/developandsystem/scripts_remotos

La primera vez que se realiza la sincronización copiará todos los directorios archivos iniciales. Desde la siguiente vez que se realice la sincronización con directorio origen-destino iguales tan solo se copiará aquellos archivos/directorios nuevos o modificados

En el caso de eliminar ficheros o directorios del origen, a la hora de sincronizar habrá que indicar que estos también se eliminen. Para ello hay que indicar el parámetro –delete

rsync -avz --delete /home/developandsystem/script /home/developandsystem/script_bk