باختصار: تحقق من تاريخ أحدث ملف في النسخة الاحتياطية، لا من تاريخ المجلد. الطابع الزمني للمجلد يتغير لأسباب لا علاقة لها باكتمال النسخ الاحتياطي.
إذا كان أحدث ملف بداخلها أقدم من الأمس، فالنسخ الاحتياطي لم يكن يعمل، مهما قالت لك الأداة.
معظم نصائح النسخ الاحتياطي تتناول الكارثة الخطأ. تتخيل كارثة درامية: قرص يموت، أو حاسوب محمول يُسرق، أو فيضان. هذه نادرة والجميع يفهمها.
الحالة الشائعة مملة. فُصل القرص لإفساح المكان لشيء آخر ولم يُعَد قط. أُعيد تشغيل NAS بعد انقطاع الكهرباء ولم تُحمَّل المشاركة مجددًا. أُغلق الحاسوب المحمول لحظة موعد المهمة، كل ليلة، طوال شهر. انتهى برنامج نصي بخطأ لم يقرأه أحد لأن أحدًا لا يقرأ سجلًا كان سليمًا طوال عام.
في كل واحدة من هذه، لا شيء معطّل. لا يظهر خطأ في أي مكان ينظر إليه إنسان. مجلد النسخ الاحتياطي لا يزال موجودًا، ولا يزال ممتلئًا بالملفات، ولا يزال بالحجم الصحيح. الشيء الوحيد الذي تغيّر أنه كف عن التجدد، ولا شيء في النظام يرى ذلك جديرًا بالذكر.
وجّه هذا إلى وجهة النسخ الاحتياطي. يعثر على أحدث ملف مُعدّل في أي مكان داخلها ويطبع تاريخه:
find /Volumes/Backup -type f -print0 | xargs -0 stat -f '%m %N' | sort -rn | head -5
العمود الأول طابع زمني Unix. لقراءته مباشرة:
find /Volumes/Backup -type f -newermt '-2 days' | head
إذا لم يطبع ذلك شيئًا، فلم يُكتب شيء منذ يومين. هذه هي الإجابة، وهي أجدر بالثقة من أي شاشة حالة، لأنها خاصية للملفات نفسها.
بالنسبة إلى Time Machine تحديدًا:
tmutil latestbackup
والذي يطبع مسار أحدث لقطة، مع تاريخها في الاسم، أو خطأ إن لم توجد لقطة.
الغريزة هي أن تنظر إلى مجلد النسخ الاحتياطي في Finder وتقرأ عمود تاريخ التعديل. ذلك الرقم ليس ما تظنه.
يتغير وقت تعديل المجلد حين يُضاف إليه شيء أو يُزال منه، لا حين يتغير محتوى ملف بداخله. فهرسة Spotlight، أو إعادة كتابة .DS_Store، أو ماسح مكافحة فيروسات، أو عميل سحابي يلمس بياناته الوصفية: أي من هذه قد يجعل مجلد نسخ احتياطي قديمًا يبدو كأنه كُتب فيه هذا الصباح.
الملفات التي بداخله هي السجل. المجلد ليس كذلك.
launchd مع StartCalendarInterval لا تعمل أثناء سكون جهاز Mac، ولا تعوّض ما فاتها بعد ذلك ما لم تطلب منها. الحاسوب المحمول المغلق عند منتصف الليل لديه نسخة احتياطية لمنتصف الليل لم تحدث ولو مرة.launchd تكتب شكواها في ملف، والملف هو الشيء الوحيد الذي يعلم.إذا كنت تفعل ذلك بنفسك، فالحل هو مفتاح الرجل الميت: شيء يشتكي حين لا يحدث النسخ الاحتياطي. هذا حدث مختلف عن فشله، والأول وحده يغطي الحالات أعلاه.
أبسط صورة هي مهمة تفحص عمر أحدث ملف وتصرخ إن كان قديمًا جدًا:
if [ -z "$(find /Volumes/Backup -type f -newermt '-2 days' 2>/dev/null | head -1)" ]; then
osascript -e 'display notification "No backup in two days" with title "Backup"'
fi
شغّل ذلك وفق جدوله الخاص، منفصلًا عن النسخ الاحتياطي، كي لا يعطّل جدول النسخ الاحتياطي المعطّل أيضًا الشيء الذي يراقبه. وهذه النقطة الأخيرة هي التي يخطئ فيها الناس: الفحص الذي يعمل داخل مهمة النسخ الاحتياطي لا يستطيع الإبلاغ بأن مهمة النسخ الاحتياطي لم تعمل.
ما تريده فعلًا هو أن يكون الغياب هو الإنذار، وأن تذكر الأداة اسم الشيء المفقود.
Copy Shelter مبني على ذلك. يتتبع متى كُتبت كل وجهة آخر مرة ومتى فُحصت آخر مرة، وينبّه بعد سبعة أيام دون نسخة احتياطية ناجحة. ويذكر الموقع بالاسم، فتحصل على «القرص الذي في الدرج لم يُرَ منذ 14 أغسطس». ولأنه يقرأ النسخة الاحتياطية مجددًا ويفحص كل جزء مقابل البصمة التي خُزّن بها، فإن النسخة الاحتياطية التي تعمل لكنها تنتج مخرجات غير قابلة للقراءة تُكتشف أيضًا، وهذا هو العطل الذي يأتي بعد ما تتناوله هذه الصفحة بخطوة.
الدرجة التي يعرضها لا تحسب إلا ما تحقق منه مؤخرًا. النسخة الاحتياطية التي لم تعمل ليست نسخة احتياطية تملكها، والرقم يقول ذلك.
لا ينبغي أن تضطر إلى ذلك. هذا هو جوهر الصفحة: الفحص الذي تجريه يدويًا فحص ستتوقف عن إجرائه، عادة بعد نحو ثلاثة أسابيع من إعداده. اجعل إنذار الغياب آليًا، ودع الفحص اليدوي يكون ما تفعله حين ينبّهك.
يساعد، وهو محدود. ينبّه Time Machine بعد عشرة أيام دون إكمال نسخة احتياطية، والإشعار سهل التجاهل ومن السهل أن تكف عن ملاحظته. ولا يستطيع أيضًا أن يخبرك بأن النسخة الاحتياطية التي أكملها غير قابلة للقراءة، لأنه لا يتحقق على القرص المحلي.
هذه حالة الأذونات، وهي أسوأ لأن كل مؤشر حالة يقول نجاح. قارن عدد الملفات في الوجهة بعددها في المصدر. إذا كانت نسخة احتياطية ينبغي أن تحمل عشرات الآلاف من الملفات تحمل أربعين، فإن macOS يرفض الوصول إلى المجلدات والمهمة لا تُبلَّغ.
بشكل مختلف، ونعم. عملاء المزامنة يسجّلون الخروج، ويبلغون الحصة، ويوقفون أنفسهم مؤقتًا، والشارة التي ستخبرك أيقونة صغيرة في شريط قوائم لا تنظر إليه. وتبقى الملفات في مكانها تمامًا، فلا يبدو شيء خاطئًا.
إلى حد كبير، نعم. وجهتان تفشلان لأسباب مختلفة، تُفحص كل منهما على حدة، أثمن من أي قدر من المراقبة على وجهة واحدة. المراقبة تخبرك أن النسخة ضاعت؛ والنسخة الثانية تعني أن ذلك لم يكن مهمًا. راجع قاعدة 3-2-1.
ذو صلة: التحقق من أن النسخة الاحتياطية قابلة للقراءة فعلًا، وقاعدة 3-2-1.