Rclone bidireccional con Rclonesync

Tiempo estimado de lectura: 6 minutos. 687 palabras. rclone

Rclone Es una herramienta genial que permite copiar y sincronizar archivos de tus nubes públicas o privadas. Pero tiene un pequeño defecto dentro de su perfección, esta sincronización es como rsync, en un único sentido.

Gracias a este script desarrollado en python por Chris cjnaz, solucionamos esta limitación podiento tener un directorio con una réplica exacta del contenido de tu nube en local y totalmente sincronizada de un modo bidireccional.

De manera que si se modifica un archivo tanto en local como en el servidor, estos se sincronizaran instantáneamente teniendo una copia exacta en ambos sitios.

De momento rclonesync ha sido probado con Dropbox, Google Drive, Box.com, OneDrive, Nextcloud, Owncloud, Webdav,… y en todos estos funciona perfectamente.

Vamos a ver las opciones básicas de uso e instalación en el propio sistema.

Si utilizas otros sistema operativo como Windows, si, en Windows también funciona, descarga únicamente el archivo rclonesync.py y ejecútalo con python.

Instalación

He creado un Fork del proyecto original, para que si hay modificaciones en el código original, no haya problemas, ya que esta la he probado tanto en la Raspberry como en procesadores de 64 y 32 bits.

De todas maneras, eres libre de instalar la versión del proyecto original si han habido actualizaciones.

Vamos a instalarlo en el sistema.

sudo curl -L https://raw.githubusercontent.com/Bash-Projects/rclonesync-V2/master/rclonesync.py -o /usr/local/bin/rclonesync && sudo chmod +x /usr/local/bin/rclonesync

Para no instalarlo en tu propio sistema y ejecutarlo con python:

curl -L https://raw.githubusercontent.com/Bash-Projects/rclonesync-V2/master/rclonesync.py -o rclonesync.py

Funcionamiento

El funcionamiento es muy simple, ejecutamos rclonesync ruta origen y ruta destino.

rclonesync [RUTA_ORIGEN] [RUTA_DESTINO]

Iniciando

Solo la primera vez que iniciamos, tenemos que poner como ruta origen, el directorio no que tiene archivos.

Y solo la primera vez, iniciaremos el scritp con la opción --first-sync . En la ayuda también se especifica que podemos utilizar la opción -1 .

Dropbox

Ejemplo de cuenta una con dropbox, la he probado y funciona perfecto. Este seria el ejemplo de mi primera sincronización:

rclonesync /home/angel/dropbox dropbox: --first-sync --verbose

Drive

Utilizando Google Drive. Voy a sincronizar una subdirectorio dentro de mi Google Drive llamada sync:

Además, en este caso, estoy utilizando otro archivo de configuración de rclone.

rclonesync drive:sync /home/angel/drive --config "/home/angel/.config/rclone/otra_configuración.conf" --first-sync --verbose

Webdav

Esto es una maravilla. Mi servidor de webdav, mediante rclonesync, es el mejor cliente para tener mis archivos orgmode y todo.txt sincronizado en todos mis servidores, pc, etc…

rclonesync webdav: /home/angel/webdav --first-sync --verbose

Forzar

Si se supera el 50% de archivos y carpetas para el borrado, tenemos que forzar con la opción --force , esta es una opción para evitar el que por error borremos archivos mediante la sincronización.

--force

Sincronización automatizada con cron.

Ahora vamos a tener sincronizado de forma automatizada, nuestra carpeta local con el contenido que tenemos en el servidor. Para ello utilizaremos cron. En este ejemplo he decidido que el directorio se sincronice cada 5 minutos.

*/5 * * * * /usr/local/bin/rclonesync /home/angel/todo webdav:todo --verbose >> ~/.config/log_webdav_todo 2>&1

Cada 5 minutos, a parte de producirse la sincronización, todo quedará registrado en el archivo ~/.config/log_webdav_todo . De esta manera puedo comprobar que todo funciona correctamente.

Excluir archivos o directorios en la sincronización

Mediante la opción --filters-file , podremos excluir archivos y directorios.

También podemos --check-access para una mejor medida adicional.

Este sería el cron:

*/5 * * * * ~/scripts/rclonesync.py /home/angel/drive/ drive: --check-access --filters-file ~/.rclonesyncwd/Filters >> ~/.config/log_drive 2>&1

Error en sincronización

Es posible que se produzca un error de sincronización. Para solucionar este problema, rclonesync nos pedirá hacer un --first-sync .

Conclusión

Rclonesync tiene muchísimas más opciones que puedes consultar en la documentación o ejecutando en tu terminal:

rclonesync -h

Este artículo solo es una guía de iniciación. No descarto en un futuro profundizar más el resto de opciones.

Fuentes

Publicado por Angel el jueves 26 marzo del 2020

También te puede interesar:

Powered by org-bash-blog

Writing in orgmode whith emacs



Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional.