Skip to main content

Montages Rclone Sasnexte et Kdrive

Montages Rclone Sasnexte et Kdrive

Architecture

NAS Sasnexte (Synology)
    └── rclone sync (WebDAV) ──► kDrive Infomaniak
                                      └── rclone mount (FUSE) ──► VPS Jux
                                                                     └── containers Docker

Le NAS pousse les médias vers kDrive une fois par jour via le planificateur DSM. Le VPS monte kDrive en FUSE en permanence — les containers accèdent aux fichiers en lecture.


Remote rclone (NAS sasnexte)

Fichier : /volume1/homes/SAS_NEXTE/.config/rclone/rclone.conf

[kdrive_music]
type = webdav
url = https://591617.connect.kdrive.infomaniak.com
vendor = other
user = julien.bertrand@nexte.fr
pass = [obfusqué rclone]

Note : le remote s'appelle kdrive_music mais sert à synchroniser tous les contenus (musique, photos, audiobooks, Komga). Nom historique à ne pas confondre avec un remote dédié musique.

Mot de passe WebDAV : régénéré le 2026-06-23 (compte julien.bertrand@nexte.fr, espace kDrive 591617). Mise à jour via rclone config update kdrive_music pass $(rclone obscure NOUVEAU_MDP).


Script unifié (NAS sasnexte)

Emplacement : /volume1/homes/SAS_NEXTE/scripts/sync_kdrive_complete.sh
Planificateur DSM : tâche déclenchée quotidiennement — commande : /volume1/homes/SAS_NEXTE/scripts/sync_kdrive_complete.sh

Note sudo : le script contient sudo -u SAS_NEXTE rclone .... Si la tâche DSM est configurée pour tourner en tant que SAS_NEXTE, retirer le sudo -u SAS_NEXTE (inutile et peut bloquer). Si elle tourne en root, le garder.

Le script n'est plus recopie ici : il est versionne dans l'arbre Syncthing, seule source de verite — Jux-scripts/NAS-Sync/sync_kdrive_complete.sh, deploye sur le NAS dans /volume1/homes/SAS_NEXTE/scripts/. La version en ligne ci-dessous datait du 2026-06-23 et n'avait aucune protection ; elle a ete remplacee le 2026-08-28 par la version durcie decrite plus bas. Sauvegarde de l'ancienne sur le NAS : sync_kdrive_complete.sh.bak-260828.

Déploiement : écrire via vi depuis SSH — le heredoc et les éditeurs Windows introduisent des CRLF qui cassent bash. Après édition : sed -i 's/\r//' script.sh pour vérifier.


Syncs actifs

Nom Source NAS Destination kDrive Notes
audiobooks /volume1/audiobooks SYNC-pour_VPS/Sync-SASNEXTE/audiobooks  
music /volume1/music SYNC-pour_VPS/Sync-SASNEXTE/music  
photo /volume1/photo/2026 SYNC-pour_VPS/Sync-SASNEXTE/photo/2026 Année courante seulement
komga /volume1/Komga SYNC-pour_VPS/Sync-SASNEXTE/Komga  

Non géré ici :

  • Romans : abandonné
  • Foxy : sur NAS Maison (pas sasnexte)

Options rclone — justifications

Option Rôle
--delete-excluded Supprime sur kDrive les fichiers exclus qui auraient pu y être uploadés
--ignore-errors Poursuit la sync si un fichier est inaccessible (NAS Synology parfois occupé)
--delete-during Supprime les fichiers obsolètes au fil du scan, pas en fin de run
--fast-list Réduit les appels API WebDAV (un seul listing récursif)
@eaDir/** Dossiers de métadonnées Synology (miniatures)
#recycle/** Corbeille Synology
@__thumb/** Miniatures Synology
*.@SynoResource / *.@SynoEAStream Flux de ressources étendues Synology
--transfers=4 4 fichiers en parallèle — équilibre entre perf et charge WebDAV
--checkers=8 8 vérifications de hash en parallèle
--timeout=5m Timeout par opération I/O
--contimeout=2m Timeout de connexion initiale

Côté VPS — montages FUSE correspondants

Les services systemd sur le VPS montent les dossiers kDrive en FUSE :

Service systemd Point de montage Source kDrive
rclone-audiobookshelf.service /home/debian/audiobookshelf/audiobooks SYNC-pour_VPS/Sync-SASNEXTE/audiobooks
kdrive-music.service /home/debian/music SYNC-pour_VPS/Sync-SASNEXTE/music
rclone-photo.service /home/debian/photo SYNC-pour_VPS/Sync-SASNEXTE/photo
kdrive-komga.service /home/debian/komga SYNC-pour_VPS/Sync-SASNEXTE/Komga

Remote VPS : kdrive: — remote natif Infomaniak (@infomaniak/mcp-server-kdrive), compte julien.bertrand@live.fr, kDrive ID 591617.


Logs

  • Un fichier de log par sync par run : /volume1/homes/SAS_NEXTE/logs/sync_{nom}_{date}.log
  • Bilan global : /volume1/homes/SAS_NEXTE/logs/sync_{date}.log
  • Commande de suivi : tail -f /volume1/homes/SAS_NEXTE/logs/sync_music_*.log

Panne du 2026-08-28 — les 4 syncs a l'arret, cause : rclone.conf deplace

Symptome : les photos de l'ete 2026 deposees la veille sur le NAS ne remontaient pas sur kDrive. Ni par la tache planifiee, ni par un lancement manuel du script — ce qui excluait d'emblee un probleme de reseau ou de quota.

Message dans le journal du jour (/volume1/homes/SAS_NEXTE/logs/sync_photo_AAAAMMJJ_*.log) :

NOTICE: Config file "/var/services/homes/SAS_NEXTE/.config/rclone/rclone.conf" not found - using defaults
CRITICAL: Failed to create file system for "kdrive_music:...": didn't find section in config file ("kdrive_music")

Cause : le 2026-08-27 a 10:16, le dossier .config du home a ete range dans /volume1/homes/SAS_NEXTE/Fichiers techniques/. Le script ne passait pas --config : rclone cherchait donc $HOME/.config/rclone/rclone.conf et ne trouvait plus le remote. Les quatre syncs sont mortes d'un coup (photo, music, komga, audiobooks), des le run suivant.

Correction : fichier recopie a sa place (chmod 600) ; une copie subsiste dans Fichiers techniques et sert desormais de secours automatique (voir plus bas).

Ce que cet incident apprend

  • Devant un didn't find section in config file, verifier l'emplacement du rclone.conf avant tout le reste. Un simple rangement par SMB ou File Station suffit a tout casser, sans que rien ne soit "casse" au sens habituel.
  • L'echec etait totalement silencieux : aucune alerte, aucun mail, l'ancien script retournait toujours 0. Seul le journal du jour le disait. C'est le vrai defaut, plus encore que le fichier deplace.
  • Piege d'analyse au moment de reparer : le dossier avait ete renomme cote NAS (2026_Eté UK → 2026_Eté UK et Italia), ce qui faisait voir a rclone 308 suppressions et 351 copies. En miroir --delete-during c'est correct, mais toujours faire un --dry-run puis comparer les listes avant de relancer une sync apres un incident :
    rclone lsf -R --files-only kdrive_music:.../photo/2026/ANCIEN_NOM | sort > /tmp/k.txt
    (cd /volume1/photo/2026/NOUVEAU_NOM && ls -p | grep -v /) | sort > /tmp/n.txt
    comm -23 /tmp/k.txt /tmp/n.txt   # doit etre vide : rien sur kDrive qui manque au NAS
  • Trou du 20 au 24/08 dans tous les journaux : NAS eteint (coupures secteur / orages), sans rapport avec cette panne.

Durcissement du script (2026-08-28)

Source de verite : Jux-scripts/NAS-Sync/sync_kdrive_complete.sh (arbre Syncthing, disponible sur toutes les machines). Le comportement nominal est inchange — memes 4 syncs, memes options rclone, meme emplacement, la tache DSM n'a pas besoin d'etre modifiee.

Protection Ce qu'elle evite --config en chemin absolu La panne ci-dessus : le script ne depend plus de $HOME ni de l'utilisateur qui le lance Restauration automatique de la config depuis Fichiers techniques/.config/rclone/rclone.conf Un nouveau deplacement du fichier ne coupe plus la synchro ; l'evenement est journalise Controles prealables : rclone present, section [kdrive_music] presente, remote reellement joignable Partir en synchro avec un mot de passe WebDAV revoque ou kDrive injoignable Refus de synchroniser une source absente ou vide Le scenario catastrophe : un volume non monte ou un dossier vide, qui en mode miroir viderait la destination kDrive --max-delete par service (photo 500, les autres 1000) Une suppression de masse imprevue : la sync s'interrompt et attend un oeil humain Ligne === BILAN: X/4 OK === et fichier d'etat logs/etat_sync.txt Avoir a lire quatre journaux pour savoir si la nuit s'est bien passee Code de sortie non nul en cas d'echec + entree dans le journal systeme DSM L'echec silencieux Purge des journaux de plus de 90 jours L'accumulation dans logs/

Mode d'emploi

S=/volume1/homes/SAS_NEXTE/scripts/sync_kdrive_complete.sh
$S                                  # les 4 syncs (ce que lance la tache DSM)
DRY_RUN=1 $S                        # essai a blanc, rien n'est ecrit sur kDrive
SERVICES="photo music" $S           # un sous-ensemble seulement
SERVICES="photo" FORCE_MAX_DELETE=1 $S   # apres verification, lever le garde-fou

cat /volume1/homes/SAS_NEXTE/logs/etat_sync.txt   # resultat du dernier run

Canari — savoir en une commande si la nuit s'est bien passee

cat /volume1/homes/SAS_NEXTE/logs/etat_sync.txt
grep -l CRITICAL /volume1/homes/SAS_NEXTE/logs/sync_*_$(date +%Y%m%d)*.log

Notifications — pourquoi pas synodsmnotify

Sur DSM 7.4, synodsmnotify n'accepte pas de titre libre : tout libelle est rejete par title: '...' is neither mail string key nor i18n format, y compris les formes i18n:... essayees. Le script utilise donc synologset1 sys err 0x11100000, qui ecrit dans le journal systeme DSM (Centre de journalisation).

Action restante cote DSM (a faire par Julien, compte admin) : dans Planificateur de taches → tache de synchronisation → Parametres, cocher « Envoyer les details d'execution par e-mail » et « uniquement lorsque le script se termine anormalement ». C'est maintenant efficace : l'ancien script retournait toujours 0, la version durcie retourne 1 des qu'un service echoue.

Tests de validation passes le 2026-08-28

  • Marche nominale en essai a blanc : BILAN: 1/1 OK, code retour 0
  • Panne rejouee (config deplacee) : restauration automatique, puis sync normale — code retour 0
  • Source vide : sync non lancee, ECHEC photo (source-vide), code retour 1
  • Seuil de suppressions depasse : sync interrompue, ECHEC photo (seuil-suppressions), code retour 1, avec la commande de reprise affichee

REX déploiement 2026-06-23

  • Problème 1 : CRLF dans le script (édition Windows) → bash -x montrait \r comme commande inconnue. Fix : réécrire via vi sur le NAS.
  • Problème 2 : mot de passe WebDAV périmé (401 Unauthorized) → régénéré le 2026-06-09 côté VPS mais pas mis à jour sur le NAS. Fix : rclone config update kdrive_music pass $(rclone obscure MDP).
  • SSH bloqué : pare-feu NAS + 2FA rendent le SSH depuis l'extérieur inaccessible. Passer par une session SSH locale ou DSM.
  • Résultat : 4 syncs validés — audiobooks 48.9 GiB / 23 min, music 1 GiB / 45s, photo et komga déjà à jour.