Discord-oplossing

Syncthing op CasaOS synchroniseert bestanden, maar kan ze niet verwijderen of wijzigen

A CasaOS Syncthing user could sync data into Documents, Downloads, Gallery and Media, but remote edits and deletions repeatedly pushed the folders out of sync.

Belangrijkste conclusie: als Syncthing een map kan lezen maar verwijderingen of wijzigingen niet kan doorvoeren, test dan de schrijfrechten vanuit de Syncthing-container. Een leesbare bind-mount is niet automatisch beschrijfbaar.

Controleer eerst de mapmodus

Een bidirectionele map moet geschikte Syncthing-mapmodi gebruiken voor het ontvangen van wijzigingen. Alleen verzenden werkt niet zoals Verzenden & ontvangen.

Bewijs dat de container kan schrijven

docker exec -it syncthing sh
touch /DATA/Gallery/.write-test
rm /DATA/Gallery/.write-test

Als een van beide opdrachten mislukt, los dan de opslagrechten op voordat je de Syncthing-instellingen wijzigt.

Schermafbeelding van een CasaOS Syncthing-mapfout waarop te zien is dat één map faalt terwijl aangrenzende mappen werken
Wanneer één map faalt maar aangrenzende mappen werken, vergelijk dan het exacte pad en eigendom.
Schermafbeelding van het CasaOS-opslagpad, gebruikt om de maptoewijzingen van Syncthing te vergelijken
Gebruik een werkende map als referentie bij het vergelijken van mountpaden.

Stem PUID en PGID op elkaar af

De officiële CasaOS Syncthing Compose-configuratie geeft PUID/PGID door en koppelt /DATA aan de container. LinuxServer legt PUID/PGID-eigendom voor hostvolumes uit.

docker exec syncthing id
stat -c '%u:%g %a %n' /DATA/Gallery

Vergelijk de numerieke ID's. Het wijzigen van het eigendom naar een gebruikersnaam is niet voldoende als de container onder een andere UID/GID draait.

Voor verwijderingen zijn rechten op de bovenliggende map nodig

Voor het verwijderen of hernoemen van een bestand zijn schrijf- en uitvoeringsrechten op de bovenliggende map vereist. Dat verklaart waarom lezen/synchroniseren gedeeltelijk kan werken terwijl externe verwijderingen mislukken.

Locatie van het CasaOS-toepassingslogboek, uitgelicht voor het oplossen van problemen met Syncthing
Gebruik logboeken samen met directe tests van het bestandssysteem.
Niet-gesynchroniseerde status van Syncthing nadat een extern apparaat bestanden op een CasaOS-host heeft gewijzigd
Een niet-gesynchroniseerde status na externe bewerkingen wijst op het schrijfpad aan de ontvangende kant.

Vergelijk een werkende map

Vergelijk docker inspect syncthing mounts, stat modus/UID/GID, ACL's met getfacl, alleen-lezenstatus van het bestandssysteem en negeerpatronen. Ga niet meteen over op chmod 777.

De CasaOS Syncthing-configuratie biedt een schone basis. Het ZimaOS-appplatform helpt alternatieven te vergelijken, terwijl ZimaCube 2 geschikt is voor opslag met meerdere schijven.

Controleer de ACL's wanneer de Unix-modusbits correct lijken

Traditioneel chmod de uitvoer kan er goed uitzien terwijl een ACL de effectieve rechten nog steeds wijzigt. Vergelijk een werkende en een falende map:

getfacl /DATA/Gallery
getfacl /DATA/Documents

Als een pad extra ACL-vermeldingen bevat, los die dan bewust op in plaats van overal recursief de rechten open te zetten.

Controleer of het bestandssysteem alleen-lezen is

findmnt -no TARGET,SOURCE,FSTYPE,OPTIONS /DATA/Gallery

Een schijf aangekoppeld als ro, bestandssysteemfouten of een defecte externe schijf kunnen hetzelfde symptoom veroorzaken: ‘kan wel lezen maar niets wijzigen’. Als de koppeling zelf alleen-lezen is, kunnen Syncthing-instellingen dit niet oplossen.

Lees de Syncthing-fout achter ‘niet gesynchroniseerd’

Open de webinterface van Syncthing en bekijk de mapfout. Vergelijk vervolgens de containerlogboeken:

docker logs --tail 200 syncthing

Zoek naar toegang geweigerd, bewerking niet toegestaan, fouten waarbij het pad niet wordt gevonden of mislukte hernoem- en verwijderbewerkingen. ‘Niet gesynchroniseerd’ is een status; het logboek bevat meestal de onderliggende oorzaak op bestandssysteemniveau.

Gebruik ‘Rechten negeren’ niet als universele oplossing

Het negeren van rechtenmetadata kan helpen wanneer twee bestandssystemen Unix-modusbits verschillend weergeven, maar het verleent het proces geen schrijfrechten. Als de container een testbestand niet kan verwijderen, maakt het wijzigen van het gedrag van Syncthing voor rechtenmetadata de map op de host niet schrijfbaar.

Gebruik een gecontroleerde schrijftest

Maak een kleine tijdelijke map, koppel die aan Syncthing en controleer op beide apparaten het aanmaken → bewerken → hernoemen → verwijderen. Pas dezelfde eigenaars- en koppelingsconfiguratie toe op de echte map zodra dat werkt. Zo scheid je het synchronisatiegedrag van een ingewikkelde bestaande mappenstructuur.

Veelgestelde vragen

Waarom kan Syncthing wel toevoegen maar niet verwijderen?

Rechten op de bovenliggende map kunnen lezen toestaan, maar het hernoemen/verwijderen blokkeren.

Moet ik chmod 777 gebruiken?

Nee. Toon eerst het falende pad en de identiteit van de container aan.