rsync عبر VPN: أي جانب هو مصدر الحقيقة؟
يمنحك النفق مسارًا، لا سياسة دمج. اختر النسخة المرجعية، واعرض النسخة أحادية الاتجاه مسبقًا، ثم قرر بشكل منفصل ما إذا كانت عمليات الحذف تنتقل.
خادمان، وشبكة VPN واحدة، ومجلد يجب أن يوجد في المكانين، وأمر يسهل تشغيله ويصعب التراجع عنه. قبل كتابته، قرر أي نسخة هي المرجعية، لأن كل سؤال لاحق عن rsync يعتمد على هذا الجواب. النسخة أحادية الاتجاه، ومجلد العمل المشترك، والأرشيف ذو الإصدارات تحتاج إلى قواعد مختلفة للتعديلات وعمليات الحذف. يوفر النفق المسار ولا رأي له في أي منها.
قرر أي نسخة تفوز قبل أن تكتب الأمر
اكتب الاتجاه في جملة واحدة، بما في ذلك اسم المضيف والمسار على كل جانب، واحصل على موافقة من يملك البيانات. في هذا الشرح يكون المصدر /srv/publish/ والوجهة حسابًا على fileserver.example لا يسمح له بالكتابة إلا في /srv/mirror/.
أكد حقائق النقل قبل النسخ: تم التحقق من مفتاح مضيف SSH، ويمكن لحساب الوجهة الكتابة في منطقة النسخة المطابقة ولا مكان آخر، ولدى كلا المضيفين إصدارات rsync متوافقة. تمنع هذه الشروط المسبقة خطأ تخطيط صغيرًا من أن يتحول إلى حادث صلاحيات. كما تخبرك أي حساب سيظهر في سجلات الوجهة عندما يسوء شيء ما.
اعرض النسخة مسبقًا واقرأ القائمة التفصيلية
شغّل النسخ أولاً بعلم المعاينة واحتفظ بالمخرجات. تخبرك التغييرات التفصيلية بما سيحدث لكل مسار، وهذا أنفع بكثير من ملخص إنجاز لاحق. احفظ المخرجات في سجل التغييرات حتى يكون لدى التشغيل التالي ما يقارن به.
rsync -rt --dry-run --itemize-changes -e ssh -- /srv/publish/ [email protected]:/srv/mirror/
الشرطة المائلة النهائية مهمة. على جانب المصدر تعني محتويات ذلك المجلد، بينما يضيف حذفها مستوى مجلد إضافيًا يحمل اسم المصدر. يوثق دليل rsync كلا الصيغتين إلى جانب أعلام الحفاظ على البيانات الوصفية، وتعتمد مجموعة الخيارات التي تحتاجها على البيانات لا على العادة.
اقرأ كل سطر مقابل الوجهة التي قصدتها. إزالة علم المعاينة تنفذ النسخ وقد تستبدل الملفات، وبدون خيار حذف تبقى الملفات الإضافية الموجودة بالفعل في الوجهة في مكانها ببساطة. هذا هو الإعداد الآمن الافتراضي فقط إذا كنت قد قررت فعلاً أن ترك الملفات القديمة خلفك مقبول. إذا كان الجواب لا، فقرار الحذف الوارد أدناه هو ما يجب اتخاذه، وليس علمًا إضافيًا ترشه في هذا الأمر.
ثم قرر ما إذا كانت عمليات الحذف تنتقل
جعل الوجهة مرآة قرار ثانٍ، وليس تحسينًا للأول. اعرضه مسبقًا بشكل منفصل، مع إضافة علم الحذف وعدم تغيير أي شيء آخر، حتى ينتمي الفرق في القائمة بالكامل إلى ذلك القرار.
rsync -rt --delete --dry-run --itemize-changes -e ssh -- /srv/publish/ [email protected]:/srv/mirror/
تزيل عمليات الحذف الملفات الزائدة على الجانب المستقبل داخل النطاق المتزامن، ولهذا يمكن لمسار مصدر خاطئ أو مجلد غير مثبت أو مرشح يستبعد أكثر من المقصود أن تجعل تشغيلاً مدمرًا يبدو كمرآة نظيفة. قائمة المعاينة هي المكان الوحيد الذي يصبح فيه هذا الفرق مرئيًا قبل أن يصبح مكلفًا. احتفظ بنسخة استرداد مستقلة حيثما تبرر البيانات ذلك، وتذكر أن المرآة تعيد إنتاج الحذف العارض بأمانة بدلاً من حفظ التاريخ.
المعاينة أيضًا لا تقفل شيئًا. يعدل الناس الملفات بين التجربة والتشغيل الفعلي، ولأنظمة الملفات آراؤها الخاصة، لذلك فإن التشغيل الذي توافق عليه والتشغيل الذي ينفذ ليسا العملية نفسها ما لم تكن الشجرتان هادئتين.
مهمتان أحاديتا الاتجاه لا تصنعان مزامنة ثنائية الاتجاه
تشغيل الأمر نفسه في الاتجاهين هو الطريقة الأكثر شيوعًا لفقدان البيانات في هذا السيناريو. يعامل كل اتجاه الجانب الآخر كوجهة ويستبدل المحتوى الأحدث بسرور، وتنعكس عمليات الحذف بالترتيب الذي ينطلق به الجدول.
إذا كان على المستخدمين تعديل النسختين، فهذا قرار منتج آخر: معالجة التعارضات، وتتبع عمليات الحذف، وأداة مصممة لهذا النموذج. تقريبه بترتيب الجدول هو الطريقة التي يحصل بها مجلد مشترك على نسختين من كل مستند لا يستطيع أحد التوفيق بينهما. قرره صراحة بدلاً من تقريبه بمدخلين في cron وأمل.
لا تؤتمت إلا بعد كتابة السياسة
يجب أن تحمل المهمة المجدولة الاتجاه والمسارات وسياسة البيانات الوصفية وقرار الحذف المعتمد. ضع هذه الحقائق الخمس في ملف المهمة نفسه، لا في صفحة ويكي قد لا يقرأها المدير التالي أبدًا. امنع التشغيلات المتداخلة، لأن نسختين تكتبان الشجرة نفسها في الوقت نفسه تنتجان حالة لم يقصدها أي منهما.
عندما يكون المصدر قاعدة بيانات حية أو مجموعة بيانات أخرى متعددة الملفات، فخذ أولاً تصديرًا متسقًا مع التطبيق أو لقطة منسقة. المشي التكراري عبر الملفات ليس معاملة، ونسخة من مجموعة بيانات متغيرة ليست متسقة.
سجل الإنجازات والإخفاقات، وافحص مجموعة البيانات في الوجهة بدلاً من رمز الخروج فقط. استعادة VPN بعد انقطاع تعيد الاتصال؛ ولا تقول شيئًا عما إذا كانت النسخة الأخيرة قد انتهت أو ما إذا كانت التعديلات المتعارضة قد حُلّت يومًا.