¿Alguna vez se preocupó por perder sus datos o se cansó de realizar copias de seguridad manuales diaria o semanalmente? Utilizar el rsync
comando y sincronizar automáticamente sus archivos locales a un servidor remoto con la frecuencia que desee sin intervención manual. Tenga en cuenta que esta guía requiere acceso a un servidor Linux remoto (p. Ej. AWS) y está escrito en Ubuntu 20.04, aunque cualquier distribución de Linux debería funcionar bien.
Instalar rsync
Antes que nada, compruebe si rsync
esta instalado. Tanto en su PC local como en su servidor web, ejecute este comando:
rsync --versión
Si obtiene la versión actual de rsync a cambio, entonces está todo listo para la siguiente sección. De lo contrario, si recibe un Comando no encontrado error, puede instalar rsync
con este comando:
sudo apt-get -y instalar rsync
Generar clave SSH
Usaremos un Clave SSH para autenticar la conexión entre nuestra PC local y el servidor remoto. Para generar una nueva clave SSH en su PC local dentro del terminal, ejecute el comando:
¿Necesita acceder a su computadora o servidor Linux de forma remota? A continuación, se explica cómo instalar y configurar SSH en Linux, Windows y dispositivos móviles.
ssh-keygen -t rsa -b 4096 -f ~ / .ssh / rsync.key
Cuando se le solicite una contraseña, déjela en blanco y presione la tecla Intro dos veces. Esto generará dos nuevos archivos dentro de su ~ / .ssh /
directorio llamado rsync.key
cuál es la clave privada, y rsync.key.pub
, la clave pública.
Configurar servidor remoto
Aunque no es obligatorio, para esta guía crearemos un Nuevo Usuario en el servidor remoto para conexiones rsync y para almacenar todos los archivos de respaldo. Inicie sesión en el servidor remoto a través de SSH y ejecute este comando:
sudo useradd -m rsync
El ejemplo anterior usa el nombre de usuario rsync, pero puede cambiarlo a lo que desee. los -metro
La opción simplemente le dice a Linux que cree un directorio de inicio para nuestro nuevo usuario.
Para permitir que su PC local se autentique, la clave SSH pública que se generó en la sección anterior debe copiarse en el servidor remoto. Abre el /~.ssh/rsync.key.pub
archivar en un editor de texto y verá una línea grande que se parece a.
ssh-rsa usuario @ host
Esta larga fila es la clave SSH pública. Cópielo en su portapapeles y dentro de su servidor remoto ejecute estos comandos:
sudo su rsync
mkdir -m 0700 $ INICIO / .ssh
echo "ssh-rsa AAAAB... usuario @ host "> $ INICIO / .ssh / claves_autorizadas
chmod 0644 $ INICIO / .ssh / claves_autorizadas
En el penúltimo comando, reemplace el texto entre las comillas con esa línea de clave SSH pública larga. Eso es todo, su PC local ahora podrá autenticarse con su servidor remoto.
Configurar el archivo de configuración ssh
En aras de la simplicidad, agregue una entrada al ~ / .ssh / config
archivo en su PC local para conectarse fácilmente al servidor remoto. Abra el archivo en su PC local con el comando.
nano $ INICIO / .ssh / config
Dentro del archivo, agregue una entrada para el servidor remoto como:
host backup_server
nombre de host 192.168.0.24
usuario rsync
IdentityFile ~ / .ssh / rsync
Cambie el nombre de host a la dirección IP de su servidor remoto y, si utilizó un nombre de usuario que no sea "rsync", cámbielo también. Puede usar cualquier cosa que desee para el host, pero para este ejemplo, se usó "backup_server". Guarde y cierre el archivo presionando Ctrl + X seguido de las teclas "Y" e Intro.
Pruebe su conexión SSH al servidor remoto con el comando.
ssh backup_server
Suponiendo que todo esté configurado correctamente, ahora debería iniciar sesión en su servidor remoto a través de SSH. Cierre la conexión con el comando.
Salida
Sincroniza tus archivos
Ahora prueba el rsync
funcionalidad y, por ejemplo, para sincronizar su directorio de Documentos en su PC local, ejecute el comando:
rsync -avz --progress ~ / Documents / backup_server: ~ / Documentos
La primera aparición de ~ / Documentos /
especifica el archivo o directorio local para sincronizar, backup_server
corresponde con la entrada agregada al ~ / .ssh / config
archivo, y el final : ~ / Documentos
simplemente especifica cargar todo en el directorio / Documentos del servidor remoto en relación con el directorio de inicio.
Inicie sesión en el servidor remoto y debería ver un nuevo directorio de Documentos que está sincronizado con el de su PC local. Cada vez que ejecute el comando anterior, solo se cargarán los archivos que se hayan modificado desde la última vez, por lo que no estará cargando constantemente todo el contenido del directorio.
Automatizar a través de Crontab
Ahora que todo está probado y funciona correctamente, podemos automatizar fácilmente todo el proceso agregando un trabajo crontab a nuestra PC local. Para sincronizar automáticamente su carpeta local con el servidor remoto cada 15 minutos, dentro de la terminal ejecute el comando.
(crontab -l; echo "* / 15 * * * * rsync -avz --progress ~ / Documents / backup_server: ~ / Documentos> / dev / null 2> & 1";) | crontab
Puede recibir un mensaje de "no crontab para el usuario", y puede simplemente ignorarlo. Cambiar el Documentos
directorio a lo que desee respaldar, pero asegúrese de dejar una barra inclinada para los directorios, de lo contrario no se respaldarán correctamente.
Verifique para asegurarse de que el trabajo crontab se haya agregado correctamente con el comando.
crontab -l
Si ve el trabajo crontab que se acaba de agregar, entonces todo está en su lugar. Espere 15 minutos, verifique su servidor remoto y todos los archivos necesarios deberían estar allí. A partir de ahora, todos los cambios realizados en sus archivos se cargarán automáticamente en el servidor remoto cada 15 minutos.
Descarga desde el servidor remoto
También puede utilizar rsync
para descargar archivos del servidor remoto y sincronizarlos con su PC local. Usando el ejemplo anterior del directorio / Documentos, dentro de la terminal ejecute el comando:
rsync -chavzP servidor_de_seguridad: ~ / Documentos / ~ / Documentos
los ~. / Documentos
El directorio en su PC local ahora debería ser una imagen reflejada del servidor remoto.
Incluir y excluir patrones
Si alguna vez necesita sincronizar solo archivos que coinciden con un patrón determinado, como terminar con .html
puedes usar el --incluir
patrón. Dentro de la terminal, ejecute el comando.
rsync -avz --include "* .html" --progress ~ / mysite / backup_server: ~ / public_html
Verifique el servidor remoto y verá que solo los archivos con una extensión .html del directorio local / mysite / se han cargado en el directorio / public_html / remote. De manera similar, también puede sincronizar todo, excepto ciertos archivos, con el --excluir
opción. Por ejemplo, el siguiente comando sincronizará todos los archivos excepto aquellos con un .TXT
extensión.
rsync -avz --exclude "* .txt" --progress ~ / mysite / backup_server: ~ / public_html
Sincronizar dos directorios locales
Si alguna vez lo necesita, también puede sincronizar dos directorios locales con el comando.
rsync -zvr ~ / fuente / directorio ~ / destino / directorio
Este comando funciona exactamente igual que cuando se sincroniza con un servidor remoto, con la única diferencia de que son dos directorios locales.
Estar tranquilo
Ahora puede respirar aliviado sabiendo que sus posibilidades de pérdida de datos ahora son sustancialmente menores. En este artículo has aprendido lo que rsync
es, cómo generar e instalar una clave SSH, definir un servidor dentro del ~ ./. ssh / config
, sincronizar un directorio local y remoto y automatizar todo el proceso a través de crontab. En el futuro, todos los archivos necesarios siempre se sincronizarán con su servidor remoto con solo un retraso de 15 minutos.
¿Necesita clonar su unidad de disco duro o partición de Linux? Utilice una de estas herramientas de clonación de unidades para clonar su disco Linux.
- Linux
- Copias de seguridad
- Linux
- Respaldo en la nube
- Red domestica
Suscríbete a nuestro boletín
¡Únase a nuestro boletín de noticias para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!
Un paso más…!
Confirme su dirección de correo electrónico en el correo electrónico que le enviamos.