J’avais présenté il y a quelques temps l’offre kDrive d’Infomaniak dans ce post. Il se trouve que j’y ai introduit une erreur que je tiens à rectifier ici. Jusqu’à présent j’utilisais leur application maison kDrive dont il existe un appimage pour Linux pour synchroniser mes données. Elle se présente comme cela:
Les dernières versions ont apporté des régressions qui m’ont causé un tas de problème de synchronisation, heureusement que j’entretiens 3 sauvegardes au total pour éviter la perte sèche de données. J’y ai passé des heures pour tout remettre en place et mes échanges avec la hotline ont été vain pour comprendre pourquoi ça dysfonctionnait. Lors de mon dernier échange avec la hotline, j’ai appris qu’il était possible de se connecter au kDrive via WebDAV et donc d’utiliser un outil comme rclone, ce que je ne pensais pas possible jusqu’à présent à tort.
Aussitôt dit, aussitôt fait, j’ai mis en place avec des scripts bash deux synchronisations avec rclone qui m’ont permis d’abandonner définitivement l’application kDrive dédiée:
- une synchronisation asynchrone pour mes photos que je lance ponctuellement de mon PC où elles sont stockées physiquement ;
- une synchronisation synchrone qui se lance automatiquement via cron toutes les semaines pour mes données de bureautique et les pages de mes sites.
Pour la synchronisation des photos il y a une petite subtilité, la copie de référence est la copie locale, sauf que je synchronise les photos de nos téléphones mobiles sur le kDrive également via l’application Android qui va bien. Donc il y a nécessité également de synchroniser du kDrive vers le répertoire local également. J’ai donc créé trois scripts au total, le premier pour la synchronisation synchrone et deux pour la synchronisation asynchrone, l’un du répertoire local vers le répertoire distant et l’autre du répertoire distant des photos de mobile vers le répertoire local des photos de mobile.
Voici le premier script pour la synchronisation synchrone placé sous /etc/cron.weekly :
#!/bin/bash ################################################### # synchronisation bureautique et homepage kdrive # ################################################### # fichier de log LOG_FILE="/var/log/rclone-kdrive.log" # fichier des filtres avec les fichiers à exclure REP_FILTRE="/home/olivier/Documents/filtre-rclone" # définition des sources et destinations à synchroniser # bureautique à synchroniser SOURCE_BUREAUTIQUE="/data/bureautique" DESTINATION_BUREAUTIQUE="kdrive:Common documents/bureautique" # homepage à synchroniser SOURCE_HOMEPAGE="/data/homepage/" DESTINATION_HOMEPAGE="kdrive:homepage" echo "" >> $LOG_FILE ladate=`date +"%Y-%m-%d--%T"` echo "Sauvegarde de $ladate" >> $LOG_FILE echo "Synchronisation de bureautique" >> $LOG_FILE /usr/local/bin/rclone sync $SOURCE_BUREAUTIQUE "$DESTINATION_BUREAUTIQUE" --filter-from $REP_FILTRE --skip-links -v --log-file $LOG_FILE echo "Synchronisation de homepage" >> $LOG_FILE /usr/local/bin/rclone sync $SOURCE_HOMEPAGE "$DESTINATION_HOMEPAGE" --filter-from $REP_FILTRE --skip-links -v --log-file $LOG_FILE echo "Fin de la synchronisation" >> $LOG_FILE
Le deuxième script pour la synchronisation asynchrone du répertoire local vers le répertoire distant des photos :
#!/bin/bash ################################## # synchronisation photos kdrive # ################################## # fichier de log LOG_FILE="/home/olivier/tmp/rclone-kdrive.log" # fichier des filtres avec les fichiers à exclure REP_FILTRE="/home/olivier/Documents/filtre-rclone" # définition des sources et destinations à synchroniser # photos à synchroniser SOURCE_PHOTOS="/run/media/olivier/Espace5-4To/photos" DESTINATION_PHOTOS="kdrive:Common documents/Photos" echo "" >> $LOG_FILE ladate=`date +"%Y-%m-%d--%T"` echo "Sauvegarde de $ladate" >> $LOG_FILE echo "Synchronisation de Photos" >> $LOG_FILE /usr/local/bin/rclone copy $SOURCE_PHOTOS "$DESTINATION_PHOTOS" --filter-from $REP_FILTRE --skip-links -v --log-file $LOG_FILE echo "Fin de la synchronisation" >> $LOG_FILE
Le troisième script pour la synchronisation asynchrone du répertoire distant vers le répertoire local des photos du mobile :
#!/bin/bash ########################################## # synchronisation photos mobiles kdrive # ########################################## # fichier de log LOG_FILE="/home/olivier/tmp/rclone-kdrive.log" # fichier des filtres avec les fichiers à exclure REP_FILTRE="/home/olivier/Documents/filtre-rclone" # définition des sources et destinations à synchroniser DESTINATION="/run/media/olivier/Espace5-4To/photos/Photos-mobile" SOURCE="kdrive:Common documents/Photos/Photos-mobile" echo "" >> $LOG_FILE ladate=`date +"%Y-%m-%d--%T"` echo "Sauvegarde de $ladate" >> $LOG_FILE echo "Synchronisation des photos des mobiles" >> $LOG_FILE /usr/local/bin/rclone copy "$SOURCE" "$DESTINATION" --filter-from $REP_FILTRE --skip-links -v --log-file $LOG_FILE echo "Fin de la synchronisation" >> $LOG_FILE
Et voici le contenu du fichier des filtres /home/olivier/Documents/filtre-rclone pour exclure des fichiers ou les répertoires commençant par un « .« .
- *.bak - .* - *~ - ~* - .*/** - *.lock - *.lnk
Pour la configuration de rclone avec kDrive, je vous invite à consulter la page dédiée sur mon site Funix.