Clicky

Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.

Cómo hacer backups en Google Drive con Rclone desde un servidor Linux (Parte II)

Crear una configuración de Rclone para Google Drive

Crear una configuración de Rclone para Google Drive

Cómo vimos en nuestro anterior artículo, Rclone es un programa de línea de comandos gratuito y de código abierto para administrar archivos en servicios de almacenamiento en la nube como Google Drive, Backblaze B2, Amazon S3 y muchos más.

La aplicación está escrita en el lenguaje de programación Go y su código fuente está alojado en GitHub.

Instalación de Rclone en Linux

Rclone está disponible en los repositorios oficiales de las principales distribuciones de Linux. Para instalar el programa en Fedora, ejecutamos:

# sudo dnf install rclone

El mismo comando se puede utilizar para instalar Rclone en RHEL, Rocky Linux y AlmaLinux, sin embargo, en esas distribuciones, antes de continuar con la instalación, necesitamos agregar el repositorio EPEL a las fuentes del software del sistema.

En Debian y en distribuciones basadas en Debian, instalamos Rclone usando apt:

# sudo apt install rclone

Rclone también está disponible en el repositorio “extra” de Archlinux; podemos instalar el paquete con pacman:

# sudo pacman -S rclone

Configuración remota de Google Drive con Rclone

La forma más sencilla de crear una configuración remota de Google Drive para Rclone es usar la configuración guiada. Para iniciar el asistente, ejecutamos:

# rclone config

Rclone nos pedirá que elijamos una acción. Seleccionamos "n" para crear un nuevo control remoto:

No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config

n/s/q> n

Debemos asignar un nombre al "remoto". En este caso, simplemente usamos "gdrive":

name> gdrive

A continuación, debemos seleccionar el almacenamiento en la nube adecuado de una lista. La posición exacta de Google Drive en la lista puede variar. En versiones recientes de Rclone, debería ser 22.

... ... ... ...
21 / Google Cloud Storage (this is not Google Drive)
\ (google cloud storage)
22 / Google Drive
\ (drive)
23 / Google Photos
\ (google photos)
... ... ... ...

Storage> 22

En este punto, debemos ingresar las credenciales de Google Drive que generamos en el artículo anterior:

client_id> <aquí-tu-ID-de-cliente>

client_secret> <aquí-tu-clave-secreta-de-cliente>

NOTA: Podemos ahorrarnos poner estas claves pues, como veremos más adelante, utilizaremos el token creado por una instalación de Rclone en Windows en local.

Tras introducir nuestras credenciales, debemos seleccionar los permisos (scope) que Rclone debe utilizar. En este caso, seleccionamos "1":

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

En el siguiente mensaje Rclone nos pregunta si queremos usar un archivo JSON de credenciales de cuenta de servicio (lo descargamos desde Google Cloud Console en el artículo anterior), podemos dejar el campo en blanco y simplemente presionar “Enter” (ya que también utilizaremos el token creado en Windows):

Option service_account_file.
Service Account Credentials JSON file path.
Leave blank normally.
Needed only if you want use SA instead of interactive login.
Leading `~` will be expanded in the file name as will environment variables such as `${RCLONE_CONFIG_DIR}`.
Enter a value. Press Enter to leave empty.

service_account_file>

También podemos omitir la edición de la configuración avanzada:

Edit advanced config?
y) Yes
n) No (default)

y/n> n

A continuación, debemos elegir si queremos usar un mensaje del navegador para autenticar Rclone con nuestra aplicación de Google Drive. IMPORTANTE: Como desde nuestra consola de Linux no disponemos de acceso a un navegador web, respondemos negativamente (posteriormente se explica como abrir la autorización de Google Drive desde Windows):

Use web browser to automatically authenticate rclone with remote?
* Say Y if the machine running rclone has a web browser you can use
* Say N if running rclone on a (remote) machine without web browser access
If not sure try Y. If Y failed, try N.

y) Yes (default)
n) No
y/n> n

Se nos mostrará la opción de incluir el token (como todavía no lo tenemos dejamos el campo en blanco):

Option config_token.
For this to work, you will need rclone available on a machine that has
a web browser available.
For more help and alternate methods see: https://rclone.org/remote_setup/
Execute the following on the machine with the web browser (same rclone
version recommended):
rclone authorize "drive" "eyJzY296ImRyaXZlIn0"
Then paste the result.
Enter a value.

config_token>

En el terminal ahora podemos elegir si queremos configurar una unidad compartida. En este caso, podemos dar una respuesta negativa:

Configure this as a Shared Drive (Team Drive)?
y) Yes
n) No (default)

y/n> n

Finalmente, para confirmar y conservar el remoto, respondemos afirmativamente a la última pregunta:

Keep this "gdrive" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote

y/e/d> y

Para salir del asistente, seleccionamos "q" en el último mensaje:

Name Type
==== ====
gdrive drive

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config

e/n/d/r/c/s/q> q

Para tener acceso remoto a Google Drive debemos instalar Rclone en Windows y completar los pasos que hemos omitido en las anteriores instrucciones.

Instalar Rclone en tu PC local con Windows

Para instalar Rclone localmente, puedes encontrar los archivos de instalación aquí: https://rclone.org/downloads/ . Hay versiones para Linux, Windows, MasOS, FreeBSD y OpenBSD

Una vez descargado, descomprime el archivo -zip, ejecuta rclone.exe con permisos elevados de administrador. Además en Windows se te pedirá que des otros permisos por ser una aplicación de terceros.

Para Windows abre el símbolo del sistema como administrador y desde allí ejecuta rclone.exe de nuevo. Te mostrará una lista de los comandos disponibles de la aplicación. Como son bastantes no vamos a ponerlos aquí. También puedes ejecutar rclone version para comprobar que está funcionado:

C:\Windows\System32>rclone version
rclone v1.71.0
- os/version: Microsoft Windows 11 Pro 24H2 24H2 (64 bit)
- os/kernel: 10.0.26100.6584 (x86_64)
- os/type: windows
- os/arch: amd64
- go/version: go1.25.0
- go/linking: static
- go/tags: cmount

versión de Rclone

Para configurar la conexión remota con Google Drive seguiremos los pasos descritos arriba.

Para iniciar el asistente, ejecutamos:

# rclone config

Seguimos todos los pasos igual que arriba hasta la parte en donde se nos pide usar un navegador para obtener permisos de acceso de Google Drive. Aquí, en lugar de No, responderemos afirmativamente:

Use web browser to automatically authenticate rclone with remote?
* Say Y if the machine running rclone has a web browser you can use
* Say N if running rclone on a (remote) machine without web browser access
If not sure try Y. If Y failed, try N.

y) Yes (default)
n) No
y/n> y

Al pulsar Intro, se abrirá una pestaña del navegador. Incluiremos nuestras credenciales de la cuenta de Google que elijamos:

conectar rclone con Drive

Debemos confirmar que queremos otorgarle a la aplicación Rclone los privilegios solicitados. Para confirmar, hacemos clic en "Continuar".

conectar rclone con Drive

Aparecerá un mensaje de éxito : Success ! All done. Please go bak to rclone.

conectar rclone con Drive

Desde el terminal de Windows también se pueden conseguir los permisos de acceso a Drive con:

rclone authorize "drive" "eyJzY29ImRyaXZlIn0"

Que es la credencial que daba Linux al configurar Rclone sin acceso al navegador en la parte "Option config_token" (ver más arriba el texto en rojo).

De vuelta en la terminal, podemos elegir si queremos configurar una unidad compartida. En este caso, podemos dar una respuesta negativa:

Configure this as a Shared Drive (Team Drive)?
y) Yes
n) No (default)

y/n> n

Finalmente, para confirmar y conservar el remoto, respondemos afirmativamente a la última pregunta:

Keep this "gdrive" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote

y/e/d> y

Para salir del asistente, seleccionamos "q" en el último mensaje:

Current remote controls:

Name Type
==== ====
gdrive drive

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config

e/n/d/r/c/s/q> q

Haciendo la magia para utilizar el token en Linux

Con las instrucciones de configuración que hemos dado el el terminal de Windows podemos extraer el token para el acceso a Google Drive. Para ello nos dirigimos a la carpeta de instalación de Rclone en Windows para localizar el archivo rclone.conf . Se encuentra en.

Disco local C: > Usuarios > Tu nombre de usuario > AppData > Roaming > rclone > rclone.conf

Editamos el archivo rclone.conf para conseguir el token de acceso de Google Dive. Aparecerá algo como esto:

[gdrive]
type = drive
scope = drive
token = {"access_token":"ya29.a0AS3H6Nw8u81struzFiokGXo2YCMTpCbLSyt49JpPIAaFxRH-zQL8LdODmW75dUl97jHqa9KaF5byrhRggyMAosjTuDk95-xMdJ5AAY2CXeVXQIH2y9N4Cvpom4Snjp3I_KZ615qLVFJRAni6k46UDvA54fpYiIcIHXxLN5JhhaCgYKAVUSARQSFQHGX2MilKgj82tfZp_q92j8Rs2zHQ0207","token_type":"Bearer","refresh_token":"1//03jGFH7m2jnnrCgYIARAAGAMSNwF-L9IrWW9VCAQgNbFP-3dq-VLsPyYFRFtcEcRSHR0PIaA3X7gwMd-YeTqBZyDxz4h80NyIrtQ","expiry":"2025-09-10T11:34:39.9060763+02:00","expires_in":3599}
team_drive =

Ahora tenemos que copiar ese token en el achivo rclone.conf de Linux.

Normalmente se encontrará en la ruta /root/.config/rclone/rclone.conf

Lo editamos con nuestro editor de texto preferido copiamos en token = el código completo que hemos obtenido arriba (incluidas la primera { y última } llaves) para que nos quede igual que el que tenemos en Windows:

[gdrive]
type = drive
scope = drive
token = {"access_token":"ya29.a0AS3H6Nw8u81struzFiokGXo2YCMTpCbLSyt49JpPIAaFxRH-zQL8LdODmW75dUl97jHqa9KaF5byrhRggyMAosjTuDk95-xMdJ5AAY2CXeVXQIH2y9N4Cvpom4Snjp3I_KZ615qLVFJRAni6k46UDvA54fpYiIcIHXxLN5JhhaCgYKAVUSARQSFQHGX2MilKgj82tfZp_q92j8Rs2zHQ0207","token_type":"Bearer","refresh_token":"1//03jGFH7m2jnnrCgYIARAAGAMSNwF-L9IrWW9VCAQgNbFP-3dq-VLsPyYFRFtcEcRSHR0PIaA3X7gwMd-YeTqBZyDxz4h80NyIrtQ","expiry":"2025-09-10T11:34:39.9060763+02:00","expires_in":3599}
team_drive =

Una vez guardado el archivo, nos vamos al terminal de Linux y comprobamos que tenemos conexión con Google Drive escribiendo:

# rclone ls gdrive:/

Por ejemplo, el comando devolverá la siguiente información:

37 archivo1.txt
5 arvivo0.jpg

Si tienes algún archivo en Google Drive será listado por ese comando (te aconsejo que subas manualmente algún archivo para comprobar que se está realizando la conexión).

Uso de Rclone

Rclone ofrece numerosos comandos para gestionar datos en el almacenamiento en la nube. No podemos proporcionar una lista detallada, pero sí podemos ver cómo realizar operaciones básicas como copiar, sincronizar, mover y eliminar datos. Pero esto lo haremos en otro artículo.

Jesus_Caceres