Utiliser rclone comme client de synchronisation Nextcloud

21 août 2020

Dans une optique minimaliste j’essaie de me passer d’un maximum de logiciels ou de leur trouver des alternatives plus lĂ©gères, et aujourd’hui c’est le client Nextcloud qui passe Ă  la trape. Son remplaçant sera rclone, un rsync pour le “cloud” qui peut parler avec S3, Swift et plein d’autres services dont WebDAV dans le cas qui m’intĂ©resse.

Il y a quelques limitations Ă  cette approche :

Dans mon cas je ne synchronise mes fichiers qu’avec un seul ordinateur, donc ces limitations ne me bloquent pas. Si c’est bloquant pour vous il y a d’autres moyens de procĂ©der, par exemple en montant le rĂ©pertoire distant et en utilisant rsync ensuite, mais on perd un peu le cĂ´tĂ© KISS.

Pour installer rclone, s’il n’est pas prĂ©sent dans les dĂ©pĂ´ts de votre distribution, vous pouvez tĂ©lĂ©charger l’exĂ©cutable sur cette page : https://rclone.org/downloads/

Pour la configuration, vous pouvez soit utiliser la commande interactive rclone config, soit créer le fichier ~/.config/rclone/rclone.conf, sur ce modèle :

$ cat ~/.config/rclone/rclone.conf

[remote]
type = webdav
url = https://nextcloud.example.com/remote.php/webdav/
vendor = nextcloud
user = myuser
pass = yourpassword

Ensuite vous pouvez lancer une simulation de synchronisation pour vous assurer que tout fonctionne :

$ rclone sync --update --progress --dry-run ~/Documents remote:Documents

Si c’est bon, on peut crĂ©er le “systemd.timer unit” :

$ cat ~/.config/systemd/user/rclone-nc.service

[Unit]
Description=Rclone Nextcloud

[Service]
ExecStart=/usr/bin/rclone sync --update --verbose /home/myuser/Documents remote:Documents
$ cat ~/.config/systemd/user/rclone-nc.timer

[Unit]
Description=Rclone Nextcloud

[Timer]
OnCalendar=hourly

[Install]
WantedBy=timers.target

Reste plus qu’Ă  activer le timer et c’est terminĂ© :

$ systemctl --user enable --now rclone-nc.timer