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 durclone.confavant 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-duringc'est correct, mais toujours faire un--dry-runpuis 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 -xmontrait\rcomme commande inconnue. Fix : réécrire viavisur 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.
No comments to display
No comments to display