
¿Está buscando una solución confiable y sólida para realizar copias de seguridad de sus datos en Linux? Rsync te tengo cubierto! Esta guía lo guiará a través de los pasos para realizar copias de seguridad de archivos y directorios usando Rsync en Linux.
1. Introducción
Si nunca realiza una copia de seguridad de sus datos, ya que todo funciona bien, diría que está equivocado.
Pregúntele a todos los usuarios de Linux, compartirán el dolor de no hacer una copia de seguridad de su sistema / datos. Como novato, cometí este error una vez y aprendí la importancia de las copias de seguridad.
Hay muchas herramientas de respaldo disponibles para plataformas Linux y Unix. Rsync (Remote Sync) se considera una de las herramientas de copia de seguridad más utilizadas y confiables.
2. Realice una copia de seguridad de archivos y directorios mediante Rsync en Linux
Con Rsync podemos
- asegurar todo el sistema,
- o hacer una copia de seguridad de archivos y directorios individuales.
Para el primer tipo, copiamos todo el sistema de archivos de Linux a un dispositivo externo o recurso compartido de red. Puede utilizar esta copia para restaurar el dispositivo a su estado original en caso de una falla del sistema.
El segundo tipo es hacer una copia de seguridad o copiar solo los archivos y directorios seleccionados. Por ejemplo, puede copiar los archivos de configuración importantes o todos ellos $HOME
Directorio y excluir todo lo demás.
Ya te hemos mostrado cómo hacerlo. Realice una copia de seguridad de todo el sistema Linux con Rsync. Esta guía se centra en directorios y archivos de copia de seguridad selectivos que utilizan Rsync en Linux.
2.1. Seleccionar medio de almacenamiento
En el primer paso, decida dónde desea guardar sus datos. ¡Es muy importante!
Puede hacer una copia de seguridad de sus datos en un disco duro externo, almacenamiento en la nube o almacenamiento conectado a la red (NAS). Una opción fácil y económica es utilizar un disco duro externo.
Si su computadora tiene dos unidades separadas, puede usar una de las unidades para hacer una copia de seguridad de sus datos porque no fallarán las dos al mismo tiempo.
Nota:
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, utilizo un 1 TB disco duro externo en este manual.
2.3. Copia de seguridad de archivos con 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 de origenDEST
– Apuntar
Aquí hay un comando rsync simple para hacer una copia de seguridad o copiar archivos de una ubicación a otra en el 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
– Omitir archivos más nuevos en el lado de recepción.-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 de la siguiente manera:
$ rsync -auv ostechnix.txt Downloads/ostechnix-bak.txt
Si no especifica el nombre del archivo de destino, Rsync usa el mismo nombre de archivo de origen que el archivo de destino.
El almacenamiento de archivos de copia de seguridad en el mismo disco duro no es realmente una copia de seguridad. Debe guardar los datos de la copia de seguridad en una unidad externa o en un recurso compartido de red, o al menos en una partición diferente.
Por ejemplo, el siguiente comando hará una copia de seguridad del archivo en mi disco externo:
$ rsync -auv ostechnix.txt /media/karthick/"My Passport"/
Rsync ofrece muchas opciones avanzadas. Eche un vistazo al siguiente ejemplo:
$ rsync -azvhP ostechnix.txt /media/karthick/"My Passport"/
Este comando transfiere archivos en modo de archivo (para preservar atributos) y en modo comprimido (zip) con barras de progreso detalladas y legibles por humanos.
2.4. Copia de seguridad de directorios con Rsync
En lugar de hacer una copia de seguridad de un solo archivo, puede poner todos los archivos en un directorio y hacer una copia de seguridad de ese directorio con Rsync. Esto es útil al duplicar y sincronizar datos.
En este manual, le mostraré cómo hacer una copia de seguridad del directorio HOME con Rsync.
2.4.1. Haga una copia de seguridad del directorio HOME con Rsync
Rsync es una herramienta para copiar archivos de forma 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 desde cero.
Para mi. para asegurar $HOME
Directorio en mi disco externo, utilicé 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 posibilidades. Esta bandera se encarga de la copia recursiva y conserva los atributos como permiso de archivo / directorio, propietario, etc. - La bandera
-v
habilita el modo detallado, que imprime más registros en la terminal cuando ejecuta el comando rsync. - La bandera
-x
restringe rsync para sincronizar datos dentro de los límites del sistema de archivos. Si ha montado un sistema de archivos en su directorio de inicio, se omitirá durante el proceso de sincronización. - La bandera
-P
es la combinación de dos banderas. Muestra el progreso de cada sincronización y conserva los archivos transferidos parcialmente. - La bandera
--delete
elimina todos los directorios y archivos que no están disponibles en el origen pero que están disponibles en el destino. Tienes que ser muy cuidadoso mientras usa la bandera. - La bandera
--exclude-from=File
acepta un archivo como argumento. Este archivo contiene la lista de archivos y directorios que rsync ignorará.
Creé un archivo llamado ignore_list.txt
que contiene los archivos y directorios que se excluirán.
En el comando anterior es esa parte --exclude-from=/home/karthick/Work/Backup/ignore_list.txt
define la lista de exclusión.
Aquí está el contenido de la ignore_list.txt
Archivo:
La lista de elementos que se excluirán de la ilustración anterior es mi elección personal y puede variar para usted. Cambie 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 corresponda a su entorno.
Aviso: Si desea conocer el punto de montaje de su unidad externa, ejecute el lsblk
Mando.
$ lsblk sdb 8:16 0 931.5G 0 disk └─sdb1 8:17 0 931.5G 0 part /media/karthick/My Passport
Antes de ejecutar el rsync
Comando por primera vez, siempre se recomienda a un Prueba de funcionamiento. La ejecución de prueba simula qué cambios se realizarán. Utilice el mismo comando pero con el -n
Bandera.
$ rsync -avxP --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 sale como se esperaba, elimine el -n
resalte y ejecute el comando para hacer una copia de seguridad de sus datos.
$ rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /media/karthick/"My Passport"/
Dependiendo del tamaño, la primera ejecución lleva 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 script de respaldo
Un comando largo puede ser difícil de recordar. Para evitar escribir durante mucho tiempo rsync
Comando en la terminal, puede crear un script BASH simple y llamarlo cuando quiera para iniciar la copia de seguridad.
Crea un script llamado home_dir_backup.sh
:
$ nano home_dir_backup.sh
Agrega 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 necesidades. También cambie las rutas de origen y destino con las suyas. 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 comenzar a hacer una copia de seguridad del directorio $ HOME:
$ ./path-to-home_dir_backup.sh
Utilice un nombre de secuencia de comandos más corto para que sea más fácil de recordar.
También puedes crear uno Softlink para el archivo de script en /usr/bin
o todos los directorios específicos del usuario que se encuentran en el $PATH
Variable.
2.4.3. Crea un alias
Otra forma de evitar escribir comandos largos es usar Alias.
Edita tu ~/.bashrc
Archiva y agrega 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 bashrc
Archivo para aplicar los cambios inmediatamente:
$ source ~/.bashrc
Ahora simplemente ejecute el siguiente comando para hacer una copia de seguridad del directorio $ HOME:
$ backup
Depende de usted decidir qué utilizar. Puede crear un alias o un script y ejecutar rsync activando el script. 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 respaldo para que se ejecuten a una hora específica en un día específico.
Edite los trabajos cron del usuario actual con el comando
$ crontab -e
Defina su programa de respaldo. Digamos, por ejemplo, ejecutar una 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 necesidades, puede programar trabajos diarios, semanales o mensuales.
Si es nuevo en los trabajos cron, hemos reunido una lista de ejemplos útiles de trabajos cron para programar tareas en Linux. Para obtener más información sobre el uso de cron, consulte la guía a continuación.
4. Conclusión
En esta guía, analizamos cómo hacer una copia 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 usar el comando rsync para hacer una copia de seguridad de su directorio de inicio y algunas de las formas de ejecutarlo y programarlo.
Este método también se puede utilizar en 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 respaldo, nos encantaría saber de usted a través de la sección de comentarios a continuación.