حلّ ديسكورد

يقوم Syncthing على CasaOS بمزامنة الملفات، لكنه لا يستطيع حذفها أو تعديلها

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.

الاستنتاج الأساسي: إذا كان بإمكان Syncthing قراءة مجلد لكنه لا يستطيع نشر عمليات الحذف أو التعديلات، فاختبر إذن الكتابة من داخل حاوية Syncthing. فتركيب الربط القابل للقراءة لا يكون قابلًا للكتابة تلقائيًا.

تحقق من وضع المجلد أولًا

ينبغي أن يستخدم المجلد ثنائي الاتجاه أوضاع مجلدات Syncthing المناسبة لاستقبال التغييرات. ولن يعمل وضع الإرسال فقط مثل وضع الإرسال والاستقبال.

أثبت قدرة الحاوية على الكتابة

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

إذا فشل أي من الأمرين، فأصلح أذونات التخزين قبل تغيير إعدادات Syncthing.

لقطة شاشة لخطأ مجلد Syncthing في CasaOS تُظهر فشل مجلد واحد بينما تعمل المجلدات المجاورة
عندما يفشل مجلد واحد بينما تعمل المجلدات المجاورة، قارن المسار الدقيق والملكية.
لقطة شاشة لمسار تخزين CasaOS مستخدمة لمقارنة تعيينات مجلدات Syncthing
استخدم مجلدًا يعمل كمرجع عند مقارنة مسارات الربط.

طابق PUID وPGID

يُمرّر تكوين CasaOS لـ Syncthing الرسمي القيمتَين PUID/PGID ويربط /DATA داخل الحاوية. وتوضح LinuxServer ملكية PUID/PGID لوحدات التخزين على المضيف.

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

قارن المعرّفات الرقمية. لا يكفي تغيير الملكية إلى اسم مستخدم إذا كانت الحاوية تعمل باستخدام UID/GID مختلفين.

تتطلب عمليات الحذف أذونات على الدليل الأب

يتطلب حذف ملف أو إعادة تسميته إذنَي الكتابة والتنفيذ على الدليل الأب. وهذا يفسر لماذا قد تبدو القراءة/المزامنة عاملة جزئيًا بينما تفشل عمليات الحذف عن بُعد.

موقع سجل تطبيق CasaOS الموضح لاستكشاف أخطاء Syncthing وإصلاحها
استخدم السجلات مع اختبارات مباشرة لنظام الملفات.
حالة عدم المزامنة في Syncthing بعد أن عدّل جهاز بعيد الملفات على مضيف CasaOS
تشير حالة عدم المزامنة بعد التعديلات عن بُعد إلى مسار الكتابة في الجانب المستقبِل.

قارن مجلدًا يعمل

قارن docker inspect syncthing عمليات الربط، stat الوضع/معرّف المستخدم/معرّف المجموعة، وقوائم التحكم بالوصول (ACLs) مع getfacl، حالة نظام الملفات للقراءة فقط، وأنماط التجاهل. لا تنتقل إلى chmod 777.

يوفر إعداد Syncthing في CasaOS نقطة أساس نظيفة. وتساعد منصة تطبيقات ZimaOS على مقارنة البدائل، بينما يناسب ZimaCube 2 أعباء عمل التخزين متعدد الأقراص.

تحقق من قوائم التحكم بالوصول عندما تبدو بتّات وضع Unix صحيحة

التقليدية chmod قد تبدو المخرجات سليمة مع استمرار وجود ACL يغيّر الأذونات الفعلية. قارن بين دليل يعمل ودليل يفشل:

getfacl /DATA/Gallery
getfacl /DATA/Documents

إذا كان أحد المسارين يحتوي على إدخالات ACL إضافية، فأصلحها عمدًا بدلًا من فتح الأذونات بشكل متكرر في كل مكان.

تحقق مما إذا كان نظام الملفات للقراءة فقط

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

قرص موصول roقد تؤدي أخطاء نظام الملفات أو محرك أقراص خارجي متدهور إلى ظهور العرض نفسه «يمكن القراءة لكن لا يمكن التغيير». وإذا كان الربط نفسه للقراءة فقط، فلن تتمكن إعدادات Syncthing من إصلاح ذلك.

اقرأ خطأ Syncthing الكامن وراء حالة «خارج المزامنة»

افتح واجهة Syncthing على الويب وافحص خطأ المجلد، ثم قارن سجلات الحاوية:

docker logs --tail 200 syncthing

ابحث عن تم رفض الإذن, العملية غير مسموح بهاأو أخطاء عدم العثور على المسار، أو فشل عمليات إعادة التسمية/الحذف. «خارج المزامنة» حالة؛ وعادةً ما يحتوي السجل على السبب الأساسي المتعلق بنظام الملفات.

لا تستخدم خيار «تجاهل الأذونات» كحل شامل

قد يساعد تجاهل بيانات أذونات الملفات عندما تمثل نظاما ملفات بتّات وضع Unix بطرق مختلفة، لكنه لا يمنح العملية إذن الكتابة. إذا لم تتمكن الحاوية من حذف ملف اختباري، فلن يؤدي تغيير سلوك Syncthing الخاص ببيانات الأذونات إلى جعل دليل المضيف قابلًا للكتابة.

استخدم اختبار كتابة مضبوطًا

أنشئ دليلًا صغيرًا مؤقتًا، واربطه بـ Syncthing، وتحقق من عمليات الإنشاء ← التحرير ← إعادة التسمية ← الحذف من كلا الجهازين. بعد نجاح ذلك، طبّق نمط الملكية والربط نفسه على المجلد الفعلي. يؤدي هذا إلى عزل سلوك المزامنة عن شجرة أدلة موجودة ومعقدة.

الأسئلة الشائعة

لماذا يستطيع Syncthing الإضافة لكنه لا يستطيع الحذف؟

يمكن لأذونات الدليل الأب السماح بالقراءة مع حظر عمليات إعادة التسمية أو الحذف.

هل ينبغي أن أستخدم chmod 777؟

لا. أثبت مسار الفشل وهوية الحاوية أولًا.