sync_files_a_nextcloud.sh
sync_files_a_nextcloud.sh
sync_files_a_nextcloud.sh
Este script monta un almacenamiento remoto de Nextcloud, sincroniza ficheros desde un origen local y ejecuta una correccion remota de permisos.
Ejecucion programada
00 2 2-31 * 1-5 /ruta/origen/scripts/sync_files_a_nextcloud.sh
Flujo
- Escribe log diario.
- Monta origen remoto Nextcloud sobre un punto de montaje destino local.
- Sincroniza documentos desde origen local hacia destino Nextcloud.
- Sincroniza imagenes desde origen local hacia destino Nextcloud.
- Sincroniza herramientas desde origen local hacia destino Nextcloud.
- Desmonta el punto de montaje.
- Lanza por SSH un script remoto de permisos.
Version saneada
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/usr/bin/env bash
set -euo pipefail
LOG="/var/log/sync_nextcloud_$(date +%Y%m%d).log"
MOUNT_DESTINO="/mnt/destino/nextcloud"
NEXTCLOUD_ORIGEN="<HOSTNAME>:/ruta/origen/nextcloud-data/<USUARIO>/files"
mount "$NEXTCLOUD_ORIGEN" "$MOUNT_DESTINO"
trap 'umount -l "$MOUNT_DESTINO" 2>/dev/null || true' EXIT
rsync -avh /ruta/origen/documentos/ "$MOUNT_DESTINO/Documentos/" >> "$LOG" 2>&1
rsync -avh /ruta/origen/imagenes/ "$MOUNT_DESTINO/Imagenes/" >> "$LOG" 2>&1
rsync -avh /ruta/origen/tools/ "$MOUNT_DESTINO/tools/" >> "$LOG" 2>&1
ssh <USUARIO>@<HOSTNAME> 'sudo /ruta/origen/scripts/permisos_nextcloud.sh'
Recomendaciones Nextcloud
- Usar
rsync -nantes de sincronizar en real. - Evitar modificar directamente
data/si no se controla el reindexado. - Ejecutar
occ files:scan --path <USUARIO>/filessi aplica. - Mantener el cambio de permisos en un script remoto versionado y documentado.
This post is licensed under CC BY 4.0 by the author.