obsidian-dix/DIX-Notes/RCLONE Y DRIVE/SINCRONIZAR DRIVE Y UN VPS.md

225 lines
4.6 KiB
Markdown

[COMPATIBILIDAD](https://rclone.org/#providers)
#### 1. Instalación de `rclone`
##### En el servidor VPS y en la computadora local (con navegador) instala `rclone` con el comando:
```bash
sudo apt install rclone
# curl https://rclone.org/install.sh | sudo bash
# comprobar versión de rclone:
# rclone version
```
#### 2.- En el VPS debes iniciar la configuración de `rclone` mediante el comando:
```bash
rclone config
```
##### 2.1.- Esto dará inicio a la configuración donde te mostrará una lista de opciones:
```bash
dix@srv841313:~/backups-db$ rclone config
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>
```
##### 2.2.- Selecciona la opción n, de Nuevo remoto, luego ingresa el nombre del nuevo repositorio, sin espacios, ejemplo: repo_drive
##### 2.3.- Te mostrara una lista de opciones de almacenamiento, selecciona la opción de drive que es la 18.
##### 2.4.- En la siguiente pregunta debes ingresar un id de usuario
#### 2. Autorización de Google Drive en equipo con navegador
Como el VPS no tiene navegador, **la autorización de Google Drive debe hacerse en un dispositivo con interfaz gráfica**:
##### 2.1 Obtener el id de tu drive, para ello debes abrir drive en tu navegador, ir a la sección de mi unidad y copiar la url de tu navegador, ejemplo:
```text
la url de mi drive es: https://drive.google.com/drive/folders/1qwZXv2b5B5X8vLh_T_xUfZjeTXZ8CCJ9?hl=es
https://drive.google.com/drive/folders/1qwZXv2b5B5X8vLh_T_xUfZjeTXZ8CCJ9
https://drive.google.com/drive/folders/1u5L_R9HXFdTnub_6aW1uZR9tyEBIvuJg
```
```bash
rclone authorize "drive" "eyJzY29wZSI6ImRyaXZlIn0"
```
### 🔎 ¿Qué hace este comando?
- Usa el `scope` limitado a `drive` (`"eyJzY29wZSI6ImRyaXZlIn0"`)
- Abre una URL local como esta:
```
http://127.0.0.1:53682/auth?state=...
```
- Ahí te logueas con tu cuenta de Google y autorizas a `rclone`
- Al finalizar, te mostrará una salida tipo:
```bash
Paste the following into your remote machine --->
eyJ0b2tlbiI6IntcImFjY2Vzc190b2tlblwiOlwi...
<---End paste
```
---
## 📦 3. Configurar `rclone` en el servidor (VPS)
### Ejecuta en el VPS:
```bash
rclone config
```
Luego sigue los pasos interactivos:
1. `n` → New remote
2. Nombre: `drive_formha`
3. Tipo: `drive`
4. Scope: `drive` (default, presiona Enter)
5. ID del cliente y secreto: deja vacío (Enter)
6. Configurar como `headless` → responde `n` a "Use auto config?"
7. Pega el token generado en el equipo local:
```bash
config_token> eyJ0b2tlbiI6IntcImFjY2...
```
8. ¿Es un Team Drive?
→ `y` (sí), pero si no hay ninguno te dirá: **"No Shared Drives found"**
9. Confirmar configuración
→ `y`
Al final, rclone mostrará algo como:
```ini
- type: drive
- scope: drive
- token: { ... }
```
---
## 📤 4. Probar que la conexión funciona
Puedes listar el contenido de tu Google Drive con:
```bash
rclone ls drive_formha:
```
Si ves archivos o carpetas, ¡funciona!
---
## 🧪 5. Subir archivos de backup
Supongamos que tienes backups en:
```bash
/home/dix/backups-db/
```
### Para subirlos a la carpeta `backup_psql` en Google Drive:
```bash
rclone copy /home/dix/backups-db/ drive_formha:/backup_psql -v
```
- El `-v` es para mostrar el progreso.
- Si la carpeta `backup_psql` no existe, se crea automáticamente.
- Archivos repetidos no se suben si no han cambiado.
---
## 🔁 6. Automatización con cron (opcional)
Edita el cron del usuario `dix` en el VPS:
```bash
crontab -e
```
Agrega una línea como esta para ejecutar todos los días a las 23:00:
```cron
0 23 * * * /usr/bin/rclone copy /home/dix/backups-db/ drive_formha:/backup_psql -v >> /home/dix/rclone_backup.log 2>&1
```
Asegúrate de que la ruta de `rclone` (`/usr/bin/rclone`) sea la correcta ejecutando:
```bash
which rclone
```
---
## 📁 Estructura resultante en Google Drive
```
My Drive/
└── backup_psql/
├── db_formha_backup_25_05_2025-15_06_28.sql
└── db_formha_backup_29_05_2025-21_22_03.sql
```
---
## ✅ Resumen de comandos clave
```bash
# En laptop (con navegador)
rclone authorize "drive" "eyJzY29wZSI6ImRyaXZlIn0"
# En VPS
rclone config
rclone ls drive_formha:
rclone copy /home/dix/backups-db/ drive_formha:/backup_psql -v
```
---
## 🔐 Seguridad
- El `token` de acceso está almacenado en `~/.config/rclone/rclone.conf`
- No compartas ese archivo
- Si cambias la contraseña de Google o revocas permisos, deberás reautorizar
---
¿Quieres que lo empaquete en un archivo `.md` o `.pdf` descargable también?