obsidian-dix/DIX-Notes/RCLONE Y DRIVE/Enviar archivos del servidor a google drive..md

7.6 KiB

1.- Instalar rclone en el servidor (si el servidor no tiene interfaz gráfica también instalalo en tu PC o laptop )

sudo apt install rclone

2.- Para poder usar la herramienta y mandar archivos al servidor debemos hacer la configuración inicial mediante el comando:

rclone config

Primero debemos crear un repositorio remoto, para ello la herramienta nos hará una serie de preguntas y en algunos casos nos dará opciones, en la consola deberás ingresar cada una de las opciones seguida de la tecla enter:

2.1.- La primera vez debemos crear nuestro primer remoto, así que ingresa la letra n y enter:

No remotes found, make a new one?
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n

2.2.- Nombre de nuevo remoto (no dejes espacios, mejor usa guion bajo):

Enter name for new remote.
name> db_backups

2.3.- Selección de la opción 18, es la opción de Google Drive

Option Storage.
Type of storage to configure.
Choose a number from below, or type in your own value.

18 / Google Drive
   \ (drive)

Storage> 18

2.4.- Te pedirá tu id de cliente de Google pero si no lo tienes solo da enter:

Option client_id.
Google Application Client Id
Setting your own is recommended.
See https://rclone.org/drive/#making-your-own-client-id for how to create your own.
If you leave this blank, it will use an internal key which is low performance.
Enter a value. Press Enter to leave empty.
client_id>

2.5.- Solicitará tu clave de OAuth pero lo puedes dejar vacío, solo da enter:

Option client_secret.
OAuth Client Secret.
Leave blank normally.
Enter a value. Press Enter to leave empty.
client_secret>

2.6.- Te pedirá el tipo de acceso que le darás a Drive, para esta caso yo elegiré la 1 que es acceso total a archivos.

Option scope.
Scope that rclone should use when requesting access from drive.
Choose a number from below, or type in your own value.
Press Enter to leave empty.
 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

2.7.- Te pedirá la ruta de las credenciales en formato JSON pero lo puedes dejar en blanco y solo dar enter:

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>

2.8- Preguntará si quieres editar la configuración avanzada, la opción es no (n):

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

2.9.- Te preguntara si quieres usar el método de configuración automática, pero ingresa que no, ya que usa una UI y el servidor no tiene interfaz gráfica.

Use auto config?
 * Say Y if not sure
 * Say N if you are working on a remote or headless machine

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

2.9.1.- Del comando anterior en consola te mostrará un mensaje como este:

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" "ayXzY01uSSI8ImRiaXZlIm0"
Then paste the result.
Enter a value.
config_token>

En tu computadora local, NO EN EL SERVIDOR, deberás abrir una terminal (previamente debiste instalar rclone en esa maquina), y pegar el comando que te da la terminal del servidor que en este caso es:

rclone authorize "drive" "ayXzY01uSSI8ImRiaXZlIm0"

De ese comando verás que te despliega la consola una respuesta como esta:

2025/06/03 13:12:35 NOTICE: Config file "/home/dave/.config/rclone/rclone.conf" not found - using defaults
2025/06/03 13:12:35 NOTICE: If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth?state=VQQBIGPyiSNLYReNNPIXmj
2025/06/03 13:12:35 NOTICE: Log in and authorize rclone for access
2025/06/03 13:12:35 NOTICE: Waiting for code...

En la segunda línea del mensaje, copia y pega en tu navegador la URL que aparece despues de link, en este caso es: http://127.0.0.1:53682/auth?state=VQQBIGPyiSNLYReNNPIXmj

En tu navegador te aparecerán las cuentas de gmail, selecciona la cuenta de gmail que corresponde al DRIVE que le darás acceso a rclone, de forma inmediata el navegador te dará un mensaje de SUCCESS y debes regresar a tu consola de tu maquina local y te dará un hash largo similar a este:

Paste the following into your remote machine --->
eyJ0b2tlbiI6IntcImFjY2Vzc19....[muchos-caracteres]....NjowMFwifSJ9
<---End paste

Copia lo que esta entre las flechas (---> hash <---) y pégalo en la terminal de tu servidor VPS.

2.10.- Te preguntará que si es un drive compartido, en este caso es no:

Configure this as a Shared Drive (Team Drive)?

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

2.11.- Finalmente te hará la pregunta de si quieres mantener la configuración hecha, debes ingresar la y:

Configuration complete.
Options:
- type: drive
- scope: drive
- token: {"access_token":"datos-de-tu-token-de-acceso","token_type":"tu-tipo-de-token","refresh_token":"hash-del-token","expiry":"time-stamp-expiracion"}
- team_drive:
Keep this "db_backups" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y

Listo, tu configuración ya esta hecha, ahora solo debes salir de rclone ingresando la letra q seguida del enter, y en

Subir carpeta con rclone copy

Este comando copia los archivos de origen a destino, sin borrar nada en destino.

rclone copy /ruta/local/de/la/carpeta formha_db_backups:/carpeta-en-drive

rclone copy /home/dix/backups-db/ formha_db_backups:/formha-db-backups

  • /ruta/local/de/la/carpeta → la carpeta en tu VPS que quieres subir.
  • formha_db_backups:/carpeta-en-drive → la carpeta en tu Google Drive (se creará si no existe).

Ejemplo:

rclone copy /home/dix/backups formha_db_backups:/backups-vps -p --v

Esto copiará todo el contenido de /home/dix/backups a la carpeta backups-vps en Google Drive.


Subir carpeta con rclone sync

Si quieres que la carpeta en Google Drive quede idéntica a la local (borra archivos en Drive que no estén en local):

rclone sync /ruta/local/de/la/carpeta formha_db_backups:/carpeta-en-drive

Ten cuidado con sync porque puede eliminar archivos en Drive.


Otros tips útiles

  • Para ver el contenido en Drive:
rclone ls formha_db_backups:/carpeta-en-drive
  • Para hacer dry-run (simular qué pasaría sin cambios reales):
rclone copy --dry-run /home/dix/backups formha_db_backups:/backups-vps

¿Quieres que te ayude con un script automático o programación de backups?