Búsqueda de sitios web

Rclone: sincroniza directorios de archivos desde diferentes almacenamientos en la nube


Rclone es un programa de línea de comandos escrito en lenguaje Go, utilizado para sincronizar archivos y directorios de diferentes proveedores de almacenamiento en la nube como: Amazon Drive, Amazon S3, Backblaze B2, Box, Ceph, DigitalOcean Spaces, Dropbox, FTP, almacenamiento en la nube de Google, Google Drive, etc.

Como puede ver, admite múltiples plataformas, lo que la convierte en una herramienta útil para sincronizar sus datos entre servidores o con un almacenamiento privado.

Rclone viene con las siguientes características

  • Comprobaciones de hash MD5/SHA1 en todo momento para garantizar la integridad de los archivos.
  • Las marcas de tiempo se conservan en los archivos.
  • Sincronizaciones parciales compatibles con archivos completos.
  • Modo de copia para archivos nuevos o modificados.
  • Sincronización unidireccional para que un directorio sea idéntico.
  • Modo de verificación: verificación de igualdad de hash.
  • Puede sincronizarse hacia y desde la red, por ejemplo, dos cuentas de nube diferentes.
  • (Cifrado) backend.
  • (Caché) backend.
  • (Unión) backend.
  • Montaje FUSE opcional (montaje rclone).

Cómo instalar rclone en sistemas Linux

La instalación de rclone se puede realizar de dos formas diferentes. La más sencilla es utilizar su script de instalación, emitiendo el siguiente comando.

curl https://rclone.org/install.sh | sudo bash

Lo que hace este script es verificar el tipo de sistema operativo en el que se ejecuta y descargar el archivo relacionado con ese sistema operativo. Luego extrae el archivo y copia el binario rclone en /usr/bin/rclone y otorga 755 permisos sobre el archivo.

Al final, cuando se complete la instalación, debería ver la siguiente línea:

Rclone v1.44 has successfully installed.
Now run “rclone config” for setup, Check https://rclone.org/docs/ for  more details.

La segunda forma de instalar rclone es emitiendo los siguientes comandos.

curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
cd rclone-*-linux-amd64

Ahora copie el archivo binario y asígnele permisos ejecutables.

cp rclone /usr/bin/
chown root:root /usr/bin/rclone
chmod 755 /usr/bin/rclone

Instale la página de manual rclone.

mkdir -p /usr/local/share/man/man1
cp rclone.1 /usr/local/share/man/man1/
mandb 

Cómo configurar rclone en sistemas Linux

Lo siguiente que deberá hacer es ejecutar rclone config para crear su archivo de configuración. Se utilizará para la autenticación para el uso futuro de rclone. Para ejecutar la configuración, ejecute el siguiente comando.

rclone config

Verá el siguiente mensaje:

2018/11/13 11:39:58 NOTICE: Config file “/home/user/.config/rclone/rclone.conf” not found - using defaults
No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q>

Las opciones son las siguientes:

  • n) – Crear nueva conexión remota
  • s) – establece protección con contraseña para tu configuración
  • q) – salir de la configuración

Para los fines de este tutorial, presionemos "n" y creemos una nueva conexión. Se le pedirá que le dé un nombre a la nueva conexión. Después de eso, se le pedirá que seleccione el tipo de almacenamiento que desea configurar:

He nombrado por conexión “Google ” y seleccioné “Google Drive”, que está bajo el número 12. El resto de las preguntas las puedes responder simplemente dejando la respuesta predeterminada, que es un “ ” vacío.

Cuando se te solicite, puedes seleccionar “autoconfig ”, lo que generará toda la información necesaria para conectarte a tu Google Drive y otorgar permisos de rclone para utilizar datos de Google Drive.

El proceso se parece a esto:

Google Application Client Secret - leave blank normally.
client_secret>
Scope that rclone should use when requesting access from drive.
Choose a number from below, or type in your own value
 1 / Full access all files, excluding Application Data Folder.
   \ "drive"
 2 / Read-only access to file metadata and file contents.
   \ "drive.readonly"
   / Access to files created by rclone only.
 3 | These are visible in the drive website.
   | File authorization is revoked when the user deauthorizes the app.
   \ "drive.file"
   / Allows read and write access to the Application Data folder.
 4 | This is not visible in the drive website.
   \ "drive.appfolder"
   / Allows read-only access to file metadata but
 5 | does not allow any access to read or download file content.
   \ "drive.metadata.readonly"
scope> 1
ID of the root folder - leave blank normally.  Fill in to access "Computers" folders. (see docs).
root_folder_id> 
Service Account Credentials JSON file path - needed only if you want use SA instead of interactive login.
service_account_file>
Remote config
Use auto config?
 * Say Y if not sure
 * Say N if you are working on a remote or headless machine or Y didn't work
y) Yes
n) No
y/n> y
If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
Log in and authorize rclone for access
Waiting for code...
Got code
Configure this as a team drive?
y) Yes
n) No
y/n> n
--------------------
[remote]
client_id = 
client_secret = 
scope = drive
root_folder_id = 
service_account_file =
token = {"access_token":"XXX","token_type":"Bearer","refresh_token":"XXX","expiry":"2018-11-13T11:57:58.955387075Z"}
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y

Cómo utilizar rclone en sistemas Linux

Rclone tiene una lista bastante larga de opciones y comandos disponibles para usar. Intentaremos cubrir algunos de los más importantes:

Listar directorio remoto

rclone lsd <remote-dir-name>:

Copiar datos con rclone

rclone copy source:sourcepath dest:destpath

Tenga en cuenta que si rclone encuentra duplicados, estos serán ignorados:

Sincronizar datos con rclone

Si desea sincronizar algunos datos entre directorios, debe usar rclone con el comando sync.

El comando debería verse así:

rclone sync source:path dest:path [flags]

En este caso, la fuente se sincroniza con el destino, ¡cambiando solo el destino! Este método omite los archivos sin cambios. Dado que el comando puede provocar la pérdida de datos, puede usarlo con “–dry-run” para ver qué se copiará y eliminará exactamente.

Mover datos con rclone

Para mover datos, puede utilizar rclone con el comando move. El comando debería verse así:

rclone move source:path dest:path [flags]

El contenido del origen se moverá (eliminará) y se colocará en el destino seleccionado.

Otros comandos útiles de rclone

Para crear un directorio en destino.

rclone mkdir remote:path

Para eliminar un directorio.

rclone rmdir remote:path

Compruebe si los archivos de origen y destino coinciden:

rclone check source:path dest:path

Borrar archivos:

rclone delete remote:path

Cada uno de los comandos de rclone se puede utilizar con diferentes indicadores e incluye su propio menú de ayuda. Por ejemplo, puede realizar una eliminación selectiva utilizando la opción de eliminación. Digamos que desea eliminar archivos de más de 100 M, el comando se vería así.

rclone --min-size 100M delete remote:path

Se recomienda encarecidamente revisar el manual y la ayuda de cada comando para aprovechar rclone al máximo. La documentación completa de rclone está disponible en: https://rclone.org/

Conclusión

rclone es una potente utilidad de línea de comandos que le ayuda a gestionar datos entre diferentes proveedores de almacenamiento en la nube. Si bien en este artículo solo hemos arañado la superficie de las capacidades de rclone, hay mucho más que lograr con él, especialmente cuando se usa en combinación con el servicio cron (por ejemplo).