Editado 2 Hace unas horas por ExtremeHow Equipo Editorial
Copia de seguridadLínea de comandosArchivosSincronizaciónGestión de datosUtilidadesSecuencias de comandosSeguridadAlmacenamientoTransferencias
Traducción actualizada 2 Hace unas horas
Rsync es una herramienta poderosa que se puede usar para crear copias de seguridad y sincronizar archivos entre diferentes sistemas. Es una utilidad de línea de comandos que permite transferencias de archivos rápidas y eficientes. Al usar codificación delta, Rsync solo transfiere las diferencias entre los directorios de origen y destino. Esto lo convierte en una herramienta ideal para copias de seguridad y sincronización, especialmente a través de conexiones de red, debido a su bajo consumo de ancho de banda.
Rsync se puede usar para transferir archivos localmente, así como a un host remoto. La sintaxis básica del comando rsync es:
rsync [opciones] origen destino
Aquí, origen
es la ubicación de los archivos que deseas transferir, y destino
es la ubicación donde deseas moverlos.
Rsync generalmente viene preinstalado en la mayoría de las distribuciones de Linux. Para verificar si está instalado, puedes escribir:
rsync --version
Si Rsync no está instalado, puedes agregarlo usando el administrador de paquetes asociado con tu sistema operativo. Por ejemplo, en un sistema basado en Debian, usarías:
sudo apt-get install rsync
En sistemas basados en Red Hat, puedes instalarlo usando:
sudo yum install rsync
La función principal de rsync es la sincronización de archivos y directorios. Por ejemplo, para copiar todos los archivos del directorio_origen
al directorio_destino
, puedes usar el siguiente comando:
rsync -avzh /ruta/a/directorio_origen/ /ruta/a/directorio_destino/
Analicemos las opciones utilizadas en este comando:
Ten en cuenta que la barra final en directorio_origen/
asegura que solo se copien los contenidos del directorio, no el directorio en sí.
Una de las características más poderosas de rsync es su capacidad para sincronizar archivos a través de la red usando SSH. Para garantizar la transferencia segura de datos, SSH encripta los datos para que no puedan ser leídos por escuchas no autorizadas. Para sincronizar directorios entre sistemas locales y remotos, puedes usar:
rsync -avz -e "ssh" usuario@host_remoto:/ruta/a/directorio_remoto/ /ruta/a/directorio_local/
Este comando utiliza la opción -e
para especificar el programa de shell remoto (SSH en este caso).
De manera similar, para copiar archivos desde el sistema local al servidor remoto, cambia los argumentos origen
y destino
:
rsync -avz /ruta/a/directorio_local/ usuario@host_remoto:/ruta/a/directorio_remoto/
Si tu SSH utiliza un puerto diferente (otro que el 22 predeterminado), puedes especificarlo usando:
rsync -avz -e "ssh -p 2222" /ruta/a/directorio_local/ usuario@host_remoto:/ruta/a/directorio_remoto/
Al sincronizar directorios, deseas que el directorio de destino refleje exactamente el directorio de origen, incluidas las eliminaciones. La opción --delete
se puede usar para este propósito:
rsync -avz --delete /ruta/a/directorio_origen/ /ruta/a/directorio_destino/
Con --delete
, Rsync eliminará cualquier archivo en el destino que no exista en el origen.
Para archivos grandes o un gran número de archivos, Rsync puede tardar mucho tiempo en ejecutarse. Puedes acelerar este proceso ejecutando Rsync como un proceso en segundo plano utilizando el símbolo &
. Esto te permite utilizar tu línea de comandos para otras tareas:
rsync -avz /ruta/a/origen/ /ruta/a/destino/ &
Por defecto, Rsync decide si un archivo debe transferirse basándose en comprobaciones como el tamaño y el tiempo de modificación. Para forzar una transferencia basada en diferencias de contenido, puedes usar:
rsync -avzc /ruta/a/origen/ /ruta/a/destino/
La opción -c
permitirá que Rsync realice una comparación de checksums, lo cual puede llevar más tiempo, pero asegura que cada archivo transmitido sea idéntico.
Puedes indicar a Rsync que incluya o excluya tipos específicos de archivos usando las opciones de incluir y excluir. Por ejemplo, para sincronizar solo archivos de texto, podrías escribir:
rsync -avz --include '*.txt' --exclude '*' /ruta/a/origen/ /ruta/a/destino/
Aquí, --include
le dice a Rsync que solo incluya archivos .txt, y --exclude
le dice a Rsync que omita todo lo demás.
Durante una operación de respaldo, puede ser importante saber qué se transfirió y cuándo. Rsync tiene una opción para esto:
rsync -avz --log-file=rsync.log /ruta/a/origen/ /ruta/a/destino/
Este comando crea o agrega registros al archivo rsync.log
.
Para usuarios que necesitan más que las funciones básicas, Rsync ofrece opciones avanzadas. Por ejemplo, puedes establecer límites de ancho de banda usando la opción --bwlimit
, que te permite establecer la velocidad máxima de tus transferencias:
rsync -avz --bwlimit=1000 /ruta/a/origen/ /ruta/a/destino/
Esto limitará el ancho de banda a 1000 KB/s.
Rsync puede operar como un demonio, ejecutándose como un servicio en segundo plano al que los clientes pueden conectarse para configuraciones grandes o tareas impulsadas por scripts. Para habilitar esto, se requiere alguna configuración en el archivo rsyncd.conf
. Por ejemplo:
[backup] path = /ruta/a/compartir comment = Directorio de respaldo read only = no list = yes uid = root gid = root auth users = nombre_usuario secrets file = /ruta/a/rsyncd.secrets
En modo demonio, Rsync escucha las solicitudes sin la necesidad de SSH. Sin embargo, asegúrate de asegurar esta configuración con un firewall y métodos de autenticación.
Para copias de seguridad regulares, Rsync se puede automatizar usando trabajos de cron en Linux. Esto asegura que las copias de seguridad ocurran en el momento especificado sin ninguna intervención manual. Por ejemplo, para configurar una copia de seguridad diaria a las 2 AM, edita el archivo crontab usando lo siguiente:
crontab -e
Agrega la siguiente línea:
0 2 * * * rsync -avz /ruta/a/origen/ /ruta/a/destino/
Este trabajo cron ejecutará el comando Rsync todos los días a las 2 AM.
Rsync es una herramienta versátil que es invaluable para tareas de copia de seguridad y sincronización sistemáticas. Usando las opciones y configuraciones adecuadas, puedes personalizar Rsync para satisfacer casi cualquier necesidad de copia de seguridad de datos. Su capacidad para realizar copias de seguridad incrementales al sincronizar solo los cambios lo hace eficiente en términos de uso del tiempo y de recursos de red. La naturaleza de código abierto y el soporte multiplataforma hacen de Rsync una opción ideal para soluciones de copia de seguridad automatizadas.
Si encuentras algo incorrecto en el contenido del artículo, puedes