Saltar a contenido

Sincronización de Carpeta Local con Nextcloud (WebDAV) en Linux

Marco Teórico

1. Conceptos Clave

  • WebDAV: Protocolo de extensión HTTP/S para gestión colaborativa de archivos en servidores remotos.
  • Nextcloud Self-Hosted: Plataforma de almacenamiento en la nube autogestionada que soporta WebDAV (/remote.php/dav/files/USUARIO/).
  • Sincronización: Transferencia bidireccional o unidireccional de archivos entre un cliente y servidor.

2. Herramientas Recomendadas

  • cadaver: Cliente CLI WebDAV para transferencias manuales.
  • rclone: Utilidad para sincronización automatizada y montaje de almacenamiento.
  • davfs2: Sistema de archivos para integrar WebDAV como disco local.
  • curl: Método directo para operaciones puntuales.

3. Consideraciones de Seguridad

  • SSL/TLS: Nextcloud usa HTTPS por defecto (verificar certificado).
  • Autenticación: Credenciales de usuario Nextcloud (usuario + contraseña o token de app).

Marco Práctico

1. Configuración Inicial

Obtener URL WebDAV de Nextcloud

URL Base: https://[TU-DOMINIO]/remote.php/dav/files/[USUARIO]/ Ejemplo: https://cloud.example.com/remote.php/dav/files/juan/

2. Método 1: cadaver (CLI Manual)

Instalación

sudo apt install cadaver  # Debian/Ubuntu
sudo dnf install cadaver  # Fedora

Comandos Básicos

1
2
3
4
5
cadaver https://[URL-WEBDAV]
> ls                  # Listar archivos
> put archivo.txt      # Subir archivo
> get documento.pdf    # Descargar archivo
> mkdir carpeta        # Crear directorio

3. Método 2: rclone (Sincronización Automatizada)

Instalación y Configuración

sudo apt install rclone  # Debian/Ubuntu
rclone config
- Seleccionar tipo webdav. - URL: https://[URL-WEBDAV] - Autenticación: user/password (credenciales Nextcloud).

Sincronizar Carpeta Local → Nextcloud

rclone sync /ruta/local/ remote:[NOMBRE_CONFIGURACION_RCLONE]/ --progress

Montar WebDAV como Disco Local

rclone mount remote:[NOMBRE_CONFIGURACION_RCLONE]/ /mnt/nextcloud/ --vfs-cache-mode writes

4. Método 3: davfs2 (Sistema de Archivos)

Instalación y Montaje

1
2
3
4
sudo apt install davfs2  # Debian/Ubuntu
sudo mkdir /mnt/nextcloud
sudo mount -t davfs https://[URL-WEBDAV] /mnt/nextcloud
# Ingresar credenciales cuando solicite

Desmontaje

sudo umount /mnt/nextcloud

5. Método 4: curl (Transferencia Directa)

Subir Archivo

curl -u usuario:contraseña -T /ruta/local/archivo.txt https://[URL-WEBDAV]/archivo.txt

6. Automatización con Cron

Ejemplo: Sincronización Cada Hora

1
2
3
crontab -e
# Añadir línea:
0 * * * * rclone sync /ruta/local/ remote:[NOMBRE_CONFIGURACION_RCLONE]/ --quiet

Mejores Prácticas

  1. Pruebas Iniciales: Verificar conexión con cadaver o curl antes de automatizar.
  2. Logs: Usar --log-file=/ruta/log.txt en rclone para diagnóstico.
  3. Backups: No sincronizar carpetas críticas sin copia de seguridad.
  4. Seguridad: Usar contraseñas fuertes y 2FA en Nextcloud.

Solución de Problemas

  • Error de Conexión: Verificar URL, firewall y certificado SSL.
  • SSL/TLS Issues: Usar --no-check-certificate en curl (solo para pruebas).
  • Permiso Denegado: Asegurar que el usuario Nextcloud tiene derechos de escritura.
  • Conflictos de Sincronización: Evitar editar el mismo archivo en múltiples dispositivos.