225 lines
4.8 KiB
Markdown
225 lines
4.8 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? |