¿Busca una solución confiable y robusta para respaldar sus datos en Linux? Rsync te tengo cubierto! Esta guía lo guía a través de los pasos para respaldar archivos y directorios usando Rsync en Linux.
1. Introducción
Si nunca realiza una copia de seguridad de sus datos considerando que todo funcionará bien, entonces diría que está equivocado.
Solo pregúntele a cualquier usuario de Linux, compartirán el dolor de no hacer una copia de seguridad de su sistema/datos. Como novato, cometí ese error una vez y aprendí la importancia de la copia de seguridad.
Existen muchas herramientas de copia de seguridad para plataformas Linux y Unix. Rsync (Remote Sync) se considera una de las herramientas de respaldo más utilizadas y confiables.
2. Copia de seguridad de archivos y directorios usando Rsync en Linux
Usando Rsync, podemos,
- copia de seguridad de todo el sistema,
- o hacer copias de seguridad de archivos y directorios individuales.
En el primer tipo, copiamos todo el sistema de archivos de Linux a un dispositivo externo o un recurso compartido de red. Puede utilizar esta copia para devolver la máquina a su estado original en caso de que falle el sistema.
El segundo tipo es copia de seguridad o copia de archivos y directorios selectivos únicamente. Por ejemplo, puede copiar los archivos de configuración importantes o todo el $HOME
directorio y excluir todo lo demás.
Ya le hemos mostrado cómo hacer una copia de seguridad de todo el sistema Linux usando Rsync . Esta guía se enfoca en archivos y directorios de respaldo selectivos usando Rsync en Linux.
2.1. Elección del medio de almacenamiento
Como primer paso, decida dónde va a hacer una copia de seguridad de sus datos. ¡Es muy importante!
Puede hacer una copia de seguridad de sus datos en un disco duro externo, un almacenamiento en la nube o un almacenamiento conectado a la red (NAS). Una opción sencilla y económica es utilizar un disco duro externo.
Si tiene dos unidades separadas en su máquina, puede usar cualquiera de las unidades para respaldar sus datos considerando que ambas no fallarán a la vez.
Si se toma en serio la copia de seguridad, no coloque la copia de seguridad en la misma unidad. Utilice siempre una unidad externa, una unidad secundaria, un recurso compartido de red y almacenamiento en la nube, etc.
Para fines de demostración, usaré un 1 TB disco duro externo a lo largo de esta guía.
2.3. Copia de seguridad de archivos usando Rsync
La sintaxis general de Rsync para copiar datos de una ubicación a otra es:
rsync [OPTION…] SRC… [DEST]
Aquí,
OPTION
- la lista de opciones de RsyncSRC
- Archivo/directorio fuenteDEST
- Destino
Aquí hay un comando Rsync simple para hacer una copia de seguridad o copiar un archivo de una ubicación a otra en el propio sistema local.
$ rsync src_file dest_file
Ejemplos:
$ rsync -auv ostechnix.txt ostechnix-bak.txt
Aquí,
-a
- Modo de modo de archivo (manteniendo las propiedades del archivo y los enlaces simbólicos)-u
- Omita los archivos que son más nuevos en el extremo receptor.-v
- Modo detallado
El comando anterior guarda el archivo de respaldo ostechnix-bak.txt
archivo en el directorio actual. También puede especificar un directorio de destino diferente como se muestra a continuación:
$ rsync -auv ostechnix.txt Downloads/ostechnix-bak.txt
Si no especifica el nombre del archivo de destino, Rsync usará el mismo nombre del archivo de origen para el archivo de destino.
Guardar archivos de copia de seguridad en el mismo disco no es realmente una copia de seguridad. Debe guardar los datos de respaldo en una unidad externa o recurso compartido de red o al menos en una partición diferente.
Por ejemplo, el siguiente comando respalda el archivo en mi disco externo:
$ rsync -auv ostechnix.txt /media/karthick/"My Passport"/
Rsync tiene muchas opciones avanzadas. Echa un vistazo al siguiente ejemplo:
$ rsync -azvhP ostechnix.txt /media/karthick/"My Passport"/
Este comando transfiere el archivo en modo de archivo (para preservar los atributos) y comprimido (en zip) con una barra de progreso detallada y legible por humanos.
2.4. Copia de seguridad de directorios usando Rsync
En lugar de hacer una copia de seguridad de un solo archivo, puede colocar todos los archivos en un directorio y hacer una copia de seguridad de ese directorio con Rsync. Esto resulta útil al duplicar y sincronizar datos.
A los efectos de esta guía, le mostraré cómo hacer una copia de seguridad del directorio HOME usando Rsync.
2.4.1. Copia de seguridad del directorio HOME usando Rsync
Rsync es una herramienta de copia de archivos incremental. Significado:solo sincroniza datos nuevos o modificados en el directorio de origen (es decir, /home
en nuestro caso) en lugar de sincronizar todos los datos nuevamente desde cero.
Para hacer una copia de seguridad de mi $HOME
directorio a mi disco externo, usé el siguiente comando:
$ rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /media/karthick/"My Passport"/
Analicemos el comando anterior y veamos qué hace cada opción.
- La bandera
-a
es la combinación de muchas opciones. Este indicador se ocupa de la copia recursiva y de la retención de atributos como permiso de archivo/directorio, propietario, etc. - La bandera
-v
habilitará el modo detallado que proporcionará más registros en la terminal cuando ejecute el comando rsync. - La bandera
-x
restringirá rsync para sincronizar datos dentro de los límites del sistema de archivos. Si ha montado algún sistema de archivos dentro de su directorio de inicio, se omitirá durante la operación de sincronización. - La bandera
-P
es la combinación de dos banderas. Mostrará el progreso de cada sincronización y conservará los archivos parcialmente transferidos. - La bandera
--delete
eliminará todos los directorios y archivos que no estén disponibles en el origen pero sí en el destino. Debes tener mucho cuidado mientras usa la bandera. - La marca
--exclude-from=File
acepta un archivo como argumento. Este archivo contiene la lista de archivos y directorios que rsync ignorará.
He creado un archivo llamado ignore_list.txt
que contiene los archivos y directorios que deben excluirse.
En el comando anterior, esta parte --exclude-from=/home/karthick/Work/Backup/ignore_list.txt
define la lista de exclusión.
Aquí está el contenido de ignore_list.txt
archivo:
La lista de elementos que se excluirán de la imagen de arriba es mi elección personal y puede diferir para usted. Modifique el parámetro según su entorno.
Las dos últimas partes del comando Rsync anterior son las ubicaciones de origen y destino. En mi caso, la fuente es mi directorio $HOME y el destino es mi disco externo. Reemplace el origen y el destino según su entorno.
Aviso: Si desea conocer el punto de montaje de su unidad externa, ejecute lsblk
comando.
$ lsblk sdb 8:16 0 931.5G 0 disk └─sdb1 8:17 0 931.5G 0 part /media/karthick/My Passport
Antes de ejecutar rsync
comando por primera vez, siempre se recomienda hacer una prueba . La ejecución de prueba simulará qué cambios se realizarán. Use el mismo comando pero con el -n
bandera.
$ rsync -avxP -n --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /media/karthick/"My Passport"/
Salida de muestra:
sending incremental file list karthick/ karthick/.bash_history 20,527 100% 0.00kB/s 0:00:00 (xfr#1, ir-chk=1056/1060) karthick/.shutter/ karthick/.shutter/drawingtool.xml 228 100% 4.54kB/s 0:00:00 (xfr#2, ir-chk=1037/1060) karthick/.shutter/profiles/ karthick/Pictures/ karthick/Pictures/Selection_001.png 37,626 100% 349.94kB/s 0:00:00 (xfr#3, to-chk=47/3001) karthick/Pictures/Selection_002.png 25,815 100% 227.12kB/s 0:00:00 (xfr#4, to-chk=46/3001) karthick/Pictures/Selection_003.png 63,275 100% 532.69kB/s 0:00:00 (xfr#5, to-chk=45/3001) karthick/Pictures/Selection_004.png 77,965 100% 581.20kB/s 0:00:00 (xfr#6, to-chk=44/3001) karthick/Pictures/Selection_005.png 75,863 100% 532.99kB/s 0:00:00 (xfr#7, to-chk=43/3001) karthick/Pictures/Selection_006.png 11,628 100% 75.20kB/s 0:00:00 (xfr#8, to-chk=42/3001) karthick/Pictures/Selection_007.png 24,311 100% 150.26kB/s 0:00:00 (xfr#9, to-chk=41/3001) karthick/Work/Backup/ karthick/Work/Backup/home_dir_backup.sh 764 100% 4.34kB/s 0:00:00 (xfr#10, to-chk=20/3001) karthick/Work/Backup/home_dir_backup.sh~ 796 100% 4.37kB/s 0:00:00 (xfr#11, to-chk=19/3001) karthick/Work/Backup/ignore_list.txt 182 100% 1.00kB/s 0:00:00 (xfr#12, to-chk=18/3001) karthick/Work/Backup/ignore_list.txt~ 182 100% 1.00kB/s 0:00:00 (xfr#13, to-chk=17/3001) ... ... ... sent 88,424 bytes received 9,459 bytes 195,766.00 bytes/sectotal size is 3,028,935,519 speedup is 30,944.45 (DRY RUN)
Si todo va según lo previsto, elimine el -n
marca y ejecuta el comando para hacer una copia de seguridad de tus datos.
$ rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /media/karthick/"My Passport"/
Según el tamaño, la primera ejecución llevará algún tiempo.
sending incremental file list karthick/ karthick/.bash_history 20,527 100% 0.00kB/s 0:00:00 (xfr#1, ir-chk=1056/1060) karthick/.shutter/ karthick/.shutter/drawingtool.xml 228 100% 4.54kB/s 0:00:00 (xfr#2, ir-chk=1037/1060) karthick/.shutter/profiles/ karthick/Pictures/ karthick/Pictures/Selection_001.png 37,626 100% 349.94kB/s 0:00:00 (xfr#3, to-chk=47/3001) karthick/Pictures/Selection_002.png 25,815 100% 227.12kB/s 0:00:00 (xfr#4, to-chk=46/3001) karthick/Pictures/Selection_003.png 63,275 100% 532.69kB/s 0:00:00 (xfr#5, to-chk=45/3001) karthick/Pictures/Selection_004.png 77,965 100% 581.20kB/s 0:00:00 (xfr#6, to-chk=44/3001) karthick/Pictures/Selection_005.png 75,863 100% 532.99kB/s 0:00:00 (xfr#7, to-chk=43/3001) karthick/Pictures/Selection_006.png 11,628 100% 75.20kB/s 0:00:00 (xfr#8, to-chk=42/3001) karthick/Pictures/Selection_007.png 24,311 100% 150.26kB/s 0:00:00 (xfr#9, to-chk=41/3001) karthick/Work/Backup/ karthick/Work/Backup/home_dir_backup.sh 764 100% 4.34kB/s 0:00:00 (xfr#10, to-chk=20/3001) karthick/Work/Backup/home_dir_backup.sh~ 796 100% 4.37kB/s 0:00:00 (xfr#11, to-chk=19/3001) karthick/Work/Backup/ignore_list.txt 182 100% 1.00kB/s 0:00:00 (xfr#12, to-chk=18/3001) karthick/Work/Backup/ignore_list.txt~ 182 100% 1.00kB/s 0:00:00 (xfr#13, to-chk=17/3001)… … … sent 3,029,863,865 bytes received 51,335 bytes 53,626,817.70 bytes/sec total size is 3,028,934,994 speedup is 1.00
2.4.2. Crear secuencia de comandos de copia de seguridad
Recordar un comando largo puede ser difícil. Para evitar escribir el largo rsync
comando en la terminal, puede crear un script BASH simple y llamarlo cada vez que desee iniciar la copia de seguridad.
Cree un script llamado home_dir_backup.sh
:
$ nano home_dir_backup.sh
Agregue las siguientes líneas:
#!/usr/bin/env bash # PURPOSE : RSYNC COMMAND TO BACKUP MY HOME DIRECTORY TO EXTERNAL DEVICE.. # REPLACE SOURCE, DESTINATION AND EXCLUDE ACCORDING TO YOUR ENVIRONMENT. rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /media/karthick/"My Passport"/
Agregue, elimine o cambie las opciones de Rsync según sus requisitos. También cambie las rutas de origen y destino con las suyas propias. Guarde y cierre el archivo.
Haga que el script sea ejecutable:
$ chmod +x <path-to-home_dir_backup.sh>
Ahora ejecute el script en cualquier momento para iniciar la copia de seguridad del directorio $HOME:
$ ./path-to-home_dir_backup.sh
Use un nombre de script más corto para recordarlo fácilmente.
También puede crear un enlace suave para el archivo de script en /usr/bin
o cualquier directorio específico del usuario que esté disponible en el $PATH
variables.
2.4.3. Crear alias
La otra forma de evitar escribir comandos largos es usar alias .
Edite su ~/.bashrc
archivo y agregue la siguiente línea al final:
alias backup="rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick / media/karthick/"My Passport"/"
Fuente el bashrc
para que los cambios surtan efecto inmediatamente:
$ source ~/.bashrc
Ahora simplemente ejecute el siguiente comando para hacer una copia de seguridad del directorio $HOME:
$ backup
Depende de ti decidir qué quieres usar. Puede crear un alias o crear una secuencia de comandos y ejecutar rsync activando la secuencia de comandos. En mi caso, creé un script y luego creé un alias para ese script.
3. Programar copia de seguridad
Puedes usar cron
programador para programar trabajos de copia de seguridad para que se ejecuten a una hora determinada en un día determinado.
Edite los trabajos cron del usuario actual usando el comando
$ crontab -e
Defina su programa de copia de seguridad. Digamos, por ejemplo, para ejecutar la copia de seguridad todos los días a las 3 a. m. , use la siguiente línea:
0 3 * * * <rsync-command-to-execute>
Dependiendo de sus requisitos, puede programar trabajos diarios, semanales o mensuales.
Si es nuevo en Cron Jobs, hemos compilado una lista de ejemplos útiles de cron job para programar tareas en Linux. Para obtener más detalles sobre el uso de cron, consulte la siguiente guía.
- Una guía para principiantes sobre los trabajos de Cron
4. Interfaces gráficas Rsync
Si es nuevo en Linux, puede que le resulte difícil entender todas las opciones y banderas de Rsync. ¡No hay problema! Hay algunas herramientas gráficas de interfaz para Rsync disponibles. Una de esas herramientas es Grsync. .
Grsync es una interfaz gráfica de usuario simple para Rsync. No tienes que memorizar ningún comando Rsync y sus opciones. Puede hacer todo a través de una GUI fácil de usar.
Para obtener más detalles, consulte la siguiente guía:
- Grsync:una interfaz gráfica simple para Rsync
5. Conclusión
En esta guía, vimos cómo hacer copias de seguridad de archivos y directorios usando Rsync en Linux. Como puede ver, ¡copiar archivos y directorios con Rsync es muy fácil!
También le mostramos cómo hacer una copia de seguridad de su directorio de inicio usando el comando rsync y algunas de las formas de ejecutarlo y programarlo.
Este método también se puede aplicar a cualquier directorio o estructura de archivos en Linux para hacer una copia de seguridad de los datos. Si cree que tiene una mejor solución de copia de seguridad, nos encantaría saber de usted a través de la sección de comentarios a continuación.
Lectura relacionada:
- Reanudar archivos transferidos parcialmente a través de SSH mediante Rsync
- Cómo hacer copias de seguridad y restaurar archivos usando Deja Dup en Linux
- Cómo configurar un servidor de respaldo usando Rsnapshot
- Cómo sincronizar archivos con Unison en Linux
- Cómo sincronizar directorios locales y remotos en Linux
- Cómo sincronizar archivos y directorios usando Zaloha.sh
- CYA:Utilidad de instantánea y restauración del sistema para Linux
- Restic:una aplicación de copia de seguridad rápida, segura y eficiente