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.
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
El funcionamiento es muy simple, ejecutamos rclonesync ruta origen y ruta destino.
rclonesync [RUTA_ORIGEN] [RUTA_DESTINO]
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
.
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
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
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
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
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.
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
Es posible que se produzca un error de sincronización. Para solucionar este problema, rclonesync nos pedirá hacer un --first-sync
.
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.
Publicado por Angel el Thursday 26 March del 2020
También te puede interesar:
Powered by org-bash-blog
Written in OrgMode with Emacs and converted to HTML with Pandoc
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional.