Una de las mayores bendiciones que han sido inventadas en este mundo de servidores web, es Rclone, un pequeño programa que conecta tu servidor con la mayor cantidad de servicios de back online del mundo y todo de manera sencilla y transparente. Te voy a comentar como lo he instado en Rocky Linux 9, pero es compatible con Linux, macOS y Windows.
Antes de comenzar, ya te adelanto que no he instalado la versión que tienes en los repositorios de Rocky Linux (concretamente en Epel), porque tienen una versión bastante antigua (puedes probarlo tú mismo aplicando sudo dnf install rclone si tienes activo el repositorio), así que he ido directamente a instalarlo mediante el sencillo script que te proponen en su página web.
Si consultas su página web, verás que en los repositorios de EPEL 9 tenemos la versión 1.57.0, y la versión más moderna es la 1.66.0 a mayo de 2024. Mejor instalas la versión más moderna, y no te tienes que preocupar por las futuras actualizaciones, ya que Rclone tiene un comando para actualizarse el mismo configurando un trabajo en cron.
- Te puede interesar: Cómo quitamos el acceso root o mejorando la seguridad y rendimiento del Kernel en Rocky Linux 9.
Cómo podemos instalar RClone en Rocky Linux
sudo -v ; curl https://rclone.org/install.sh | sudo bash
Con este primer comando ejecutamos la instalación.
¿Qué hace este script de instalación? Básicamente, aplica los siguientes comandos:
sudo cp rclone /usr/bin/
sudo chown root:root /usr/bin/rclone
sudo chmod 755 /usr/bin/rclone
sudo mkdir -p /usr/local/share/man/man1
sudo cp rclone.1 /usr/local/share/man/man1/
sudo mandb
Te lo comento, porque si alguna vez quieres desinstalar Rclone, solo vas a tener que borrar los siguientes directorios:
sudo rm /usr/bin/rclone
sudo rm /usr/local/share/man/man1/rclone.1
Así de sencillo. Es importante comentarlo, porque siempre que instalas un programa en tu servidor sin usar DNF o YUM, puedes correr el riesgo de afectar a alguna parte del sistema, o simplemente olvidarte del programa y dejarlo sin actualizar. Eso no te vas a pasar con Rclone. Está controlado.
- Referencias: https://rclone.org/install/
¿Cómo puedes hacer que Rclone se actualice automáticamente con el comando rclone selfupdate? Creas un trabajo cron en tu servidor con este comando:
sudo crontab -e
0 2 * * 0 /usr/bin/rclone selfupdate 2>&1 | mail -s 'rclone update' tu_correo@prueba_com
Creas un trabajo en el cron de tu servidor para que compruebe sus actualizaciones una vez a la semana y te envíe un correo con el resultado.
Como podemos configurar nuestro servicio de backup con Rclone: ejemplo con Backblaze B2
Lo primero que tienes que tener claro es la gran cantidad de servicios de almacenamiento online que puedes usar con Rclone:
Aquí tienes la tabla con los servicios de respaldo divididos en dos columnas:
Servicios de backup | Servicios de backup |
---|---|
1Fichier | Mega |
Akamai Netstorage | Memory |
Alias | Microsoft Azure Blob Storage |
Amazon S3 | Microsoft Azure Files Storage |
Backblaze B2 | Microsoft OneDrive |
Box | OpenStack Swift / Rackspace Cloudfiles / Blomp Cloud Storage |
Chunker – transparently splits large files for other remotes | OpenDrive |
Citrix ShareFile | Oracle Object Storage |
Compress | Pcloud |
Combine | PikPak |
Crypt – to encrypt other remotes | premiumize.me |
DigitalOcean Spaces | put.io |
Digi Storage | Proton Drive |
Dropbox | QingStor |
Enterprise File Fabric | Quatrix by Maytech |
FTP | Seafile |
Google Cloud Storage | SFTP |
Google Drive | Sia |
Google Photos | SMB |
Hasher – to handle checksums for other remotes | Storj |
HDFS | SugarSync |
HiDrive | Union |
HTTP | Uptobox |
Internet Archive | WebDAV |
Jottacloud | Yandex Disk |
Koofr | Zoho WorkDrive |
Linkbox | The local filesystem |
Mail.ru Cloud |
En mi caso, lo he configurado con Backblaze B2. Lo bueno que tiene Rclone, es que en su página de configuración te ofrece una pequeña guía de cómo configurar cada servicio, pero es algo que siempre te va a aparecer cuando aplicas el comando de configuración:
rclone config
En cuanto pones eso, te va a guiar en el proceso de dar de alta tu servicio de backup favorito.
En el caso de Backblaze B2 solo necesitas haber generado tú Application Key ID y Application Key en el panel de control previamente, porque Rclone te las va a pedir. Evidentemente, también tienes que crear un espacio de almacenamiento o Bucket:
Primero creamos el Bucket:
Ahora creamos una nueva Aplication Key para Rclone:
Apunta bien los datos, que el applicationKey solo aparce una vez.
Con esto ya tienes generados los dos datos que te pide Rclone para conectarse al servicio de backup online. Ponemos en el terminal: rclone config y comenzamos:
No remotes found, make a new one?
n) New remote
q) Quit config
n/q> n
name> algoentremanos
Type of storage to configure.
Choose a number from below, or type in your own value
[snip]
XX / Backblaze B2
\ "b2"
[snip]
Storage> b2
Account ID or Application Key ID
account> Pones tu account ID que ha generado en Backblaze
Application Key
key> Pones tu Application Key que has generado en Backblaze
Endpoint for the service - leave blank normally.
endpoint>
Remote config
--------------------
[remote]
account = tu account ID
key = tu Application Key
endpoint =
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y
- Referencias: https://www.backblaze.com/docs/cloud-storage-integrate-rclone-with-backblaze-b2 y https://rclone.org/docs/
¿Comandos útiles que puedes aplicar?
rclone lsd b2: #compruebas el listado de buckets al que puedes acceder (directorios)
rclone ls b2: #compruebas el listado de archivos en el bucket
Vale, ¿qué puedes hacer con Rclone? Pues es muy interesante el comando sync, que sincroniza la fuente con el destino, cambiando solo el destino. No transfiere archivos que sean idénticos en origen y destino. El destino se actualiza para que coincida con la fuente, incluida la eliminación de archivos si es necesario. Si no deseas eliminar archivos de destino, tienes que utilizar el comando copy en su lugar.
Puedes decirle lo siguiente:
rclone sync /copiaseguridad b2:nombrebucketcreado
Todo lo que esté en el directorio de tu servidor /copiaseguridad será trasladado al Bucket /nombrebucketcreado.
En mi caso, tengo un trabajo de backup creado con Virtualmin que guardar los archivos en /copiaseguridad y que, cuando termina, ejecuta automáticamente el comando rclone sync anterior para que se proceda a subir el archivo al backup online en Backblaze. Todo de forma transparente.
- En tu caso, puedes crear un trabajo en el cron para que se ejecute Rclone cada cierto tiempo y compruebe si hay nuevos archivos en tu directorio de copia de seguridad. Las posibilidades son infinitas.
Puedes probar que todo funciona sin que haga nada con el comando:
rclone sync --dry-run /copiaseguridad b2:nombrebucketcreado
¡Ojo! Yo uso este comando, pero tiene unos cuantos más que puedes consultar mediante rclone -h. Los 3 que más te pueden interesar son:
- Rclone copy – Copiar archivos de origen a destino, omitiendo ya copiados.
- Rclone bisync – Sincronización bidireccional entre dos rutas.
- Rclone mount: Montas el servicio de backup en tu servidor
¡Ojo! Ten en cuenta que en los comandos de transferencia de archivos, por defecto, vas a trasladando 4 de cada vez. Si quieres aumentarlo tienes que poner:
rclone --transfers 10 sync /copiaseguridad b2:nombrebucketcreado
Conclusión
Sin dudarlo un minuto, Rclone es uno de esos programas que no deben faltar en tu servidor Linux si quieres mantener copias de seguridad de tus archivos en multitud de proveedores online. Los tiene todos, y lo bueno, es que todo se configura de manera sencilla en línea de comandos. Si tienes dudas, deja un comentario y te ayudo.
- ¿Quieres cifrar tus datos online con Rclone? Te lo cuento en Cómo cifrar tus datos en la nube con Rclone.
Te puede interesar: Cómo configurar la memoria SWAP en un servidor Rocky Linux 9.