[{"data":1,"prerenderedAt":233},["ShallowReactive",2],{"seo-verification":3,"blog-اختبار-استعادة-نسخة-احتياطية-vps-عميل-وكالة-إجراء-ar":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-اختبار-استعادة-نسخة-احتياطية-vps-عميل-وكالة-إجراء-ar",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":30,"intro":33,"sections":34,"ctaTitle":183,"ctaBody":184,"ctaButton":185,"ctaUrl":186,"relatedPosts":187},523,"اختبار-استعادة-نسخة-احتياطية-vps-عميل-وكالة-إجراء",{"fr":12,"en":13,"ar":10,"es":14},"tester-restauration-sauvegarde-vps-client-agence-procedure","test-client-vps-backup-restore-agency-procedure","probar-restauracion-copia-seguridad-vps-cliente-agencia-procedimiento","اختبار استعادة النسخ الاحتياطية لعميل: إجراء للوكالات","إجراء فصلي لاستعادة موقع عميل على خادم VPS تجريبي مؤقت، وقياس RTO وRPO الفعليين، ثم تسليم العميل سجل اختبار مؤرخاً.",11,0,false,"2026-10-28T00:00:00+00:00","2026-10-29T03:10:23+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},8,"الأمان والمراقبة","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Ftester-restauration-sauvegarde-vps-client-agence-procedure-poster.svg","النسخة الاحتياطية الموجودة ليست بالضرورة نسخة يمكن قراءتها من جديد، ويظهر الفرق يوم الحادث أمام العميل. هذا الدليل موجه للوكالات التي تدير محفظة مواقع وعليها أن تجيب عن سؤال «أثبتوا أنكم تعرفون الاستعادة». يصف تمريناً كاملاً ويدوياً وفصلياً على خادم VPS تجريبي مؤقت: استعادة من المستودع الفعلي، وقياس RTO بالمؤقت، وحساب RPO المرصود، ثم تسليم العميل سجلاً مؤرخاً. أما الفحص الآلي بملف الحارس فيُعالَج في دليل آخر؛ هنا ننتج الدليل القاطع.",[35,39,49,52,83,86,126,157,167,170,174,177,180],{"type":36,"title":37,"body":38},"h2","هذا الاختبار ليس الفحص الآلي: ما الذي يضيفه","يصف الدليل الخاص باستراتيجية 3-2-1 مع Restic وS3 فحصاً آلياً: ملف حارس يُستعاد كل أسبوع وينبّه عند انقطاع سلسلة النسخ. هذا مفيد ويجب الإبقاء عليه. لكنه يجيب عن سؤال «هل يمكن قراءة المستودع؟» لا عن «هل يعود موقع العميل للعمل وبعد كم من الوقت؟». استعادة ملف من بضعة بايتات لا تقول شيئاً عن قاعدة البيانات أو الملفات المرفوعة أو إصدار PHP المطلوب أو الأسرار المفقودة.\n\nيستعيد تمرين هذا الدليل موقعاً كاملاً، يدوياً، على جهاز جديد، ويستخلص ثلاثة قياسات: مدة، وعمر البيانات، وقائمة بالملاحظات. الآليتان لا تتنافسان. الفحص الآلي يكشف العطل كل أسبوع، والتمرين الفصلي يثبت الاستعادة بتوقيع وتاريخ. وهذا هو الدليل الذي ينتهي العميل أو المناقصة أو التدقيق إلى طلبه.\n\nولا ينبغي خلطه كذلك بفحص الاستعادة الوارد في قائمة التدقيق الأمني الشهري لخادم VPS خاص بعميل: ذاك يتحقق كل شهر من استعادة ملف أو قاعدة بيانات، بينما يعيد التمرين الفصلي في هذا الدليل تشغيل موقع كامل والمؤقت في اليد.",{"type":40,"title":41,"items":42},"ul","ما يثبته التمرين ولا تثبته النسخة وحدها",[43,44,45,46,47,48],"**المستودع يُقرأ دون الخادم الأصلي** — تنطلق الاستعادة من المستودع البعيد وبأسرار محفوظة في مكان آخر، وليس من قرص الموقع أبداً.","**الموقع يعمل فعلاً** — الصفحة الرئيسية وتسجيل الدخول إلى الإدارة وآخر محتوى في قاعدة البيانات تستجيب على الجهاز الجديد.","**RTO يُقاس ولا يُفترض** — مدة مرصودة تحل محل التقدير «نحو ساعة».","**RPO يفي بوعده** — الفارق بين الحادث المحاكى واللقطة المستعادة يُقارن بما يعلنه العقد.","**الصلاحيات في أيدٍ أمينة** — يكشف الاختبار من يملك فعلاً كلمة مرور المستودع ومفاتيحه.","**يوجد دليل** — سجل مؤرخ وموقّع يُسلَّم للعميل يعمل حجة بيع وحماية عند أي نزاع.",{"type":36,"title":50,"body":51},"التحضير للاختبار: النطاق والجهاز المؤقت والجهد","اختر موقعاً واحداً لكل عميل في كل فصل مع تنويع النماذج: موقع يعتمد على قاعدة بيانات، وآخر بملفات مرفوعة كبيرة، وثالث بمهام مجدولة. قبل البدء اجمع ثلاثة عناصر خارج خادم الموقع: صلاحية الوصول إلى المستودع، وكلمة المرور أو المفتاح الذي يفتحه، وقائمة أسرار التطبيق.\n\nثم استأجر خادم VPS تجريبياً مؤقتاً بنفس نظام الإنتاج، واعزم على حذفه في نهاية الجلسة. أما الجهد، فاحسب كرتبة قدر تحريرية نصف يوم لكل فصل لموقع نموذجي، وأكثر لمستودع كبير، وأقل حين يصبح الإجراء معتاداً. دوّن ساعة البدء قبل أول أمر، وليس بعده.",{"type":53,"title":54,"steps":55},"steps","الإجراء في تسع خطوات",[56,59,62,65,68,71,74,77,80],{"title":57,"body":58},"تحديد الحادث المحاكى","دوّن الساعة الدقيقة للحادث المحاكى، مثل آخر كتابة معروفة على الموقع، ونطاق الاستعادة: ملفات وقاعدة بيانات وإعدادات. تُستخدم هذه الساعة في حساب RPO.",{"title":60,"body":61},"إنشاء خادم VPS التجريبي","أنشئ جهازاً جديداً بنظام التشغيل نفسه المستخدم في الإنتاج. لا يصل إليه أي ملف من القرص الأصلي. دوّن ساعة البدء: فهي نقطة انطلاق مؤقت RTO.",{"title":63,"body":64},"تثبيت الأداة وفتح المستودع","ثبّت أداة النسخ الاحتياطي ومكدس الموقع فقط (خادم الويب وPHP وقاعدة البيانات). استرجع بيانات الدخول من خزنة كلمات المرور، وليس من الخادم المنكوب. يجب أن يعرض الأمر `restic -r \u003Crepository> snapshots` نقاط الاستعادة.",{"title":66,"body":67},"اختيار اللقطة","اختر آخر لقطة سابقة للحادث المحاكى ودوّن معرّفها وطابعها الزمني. هي التي تحدد RPO المرصود.",{"title":69,"body":70},"استعادة الملفات","`restic -r \u003Crepository> restore \u003Cid> --target \u002Fsrv\u002Frestore`\nثم انقل المحتوى إلى مجلد الويب. مع Borg انتقل أولاً إلى المجلد الهدف لأن الاستخراج يكتب في المجلد الحالي: `cd \u002Fsrv\u002Frestore && borg extract \u003Crepository>::\u003Carchive>`.",{"title":72,"body":73},"استعادة قاعدة البيانات","`pg_restore --create --dbname=postgres backup.dump`\nوللتفريغ النصي `psql -f backup.sql`. بعد ذلك عُدّ صفوف جدول شاهد (`SELECT count(*) FROM orders;`) وقارنها بالقيمة المقروءة في الإنتاج قبل الاختبار.",{"title":75,"body":76},"إعادة بناء الإعدادات","أعد وضع ملف `.env` والأسرار وملف vhost والمهام المجدولة انطلاقاً من الخزنة، ثم طابق إصداري PHP وقاعدة البيانات مع الإنتاج.",{"title":78,"body":79},"التحقق من التطبيق","افتح الصفحة الرئيسية وسجّل الدخول إلى الإدارة وابحث عن آخر طلب أو مقال في قاعدة البيانات. دون لمس DNS: `curl -k --resolve your-domain.com:443:\u003CTEST_VPS_IP> https:\u002F\u002Fyour-domain.com\u002F`.",{"title":81,"body":82},"إيقاف المؤقت وحذف الجهاز","أوقف المؤقت عند أول طلب ناجح إلى التطبيق، وليس عند انتهاء أمر الاستعادة. احسب RTO وRPO واملأ السجل، ثم احذف خادم VPS التجريبي.",{"type":36,"title":84,"body":85},"المؤقت: RTO وRPO المرصودان","RTO المرصود هو ساعة انتهاء الاستعادة الموثقة ناقص ساعة بدء الاختبار. أما RPO المرصود فهو الفارق بين ساعة الحادث المحاكى والطابع الزمني للقطة المستعادة. خذ مثالاً افتراضياً: حادث محاكى عند 14:00، وآخر لقطة التُقطت عند 03:00 في اليوم نفسه، أي 11 ساعة من البيانات المفقودة. إن وعد العقد بـ 24 ساعة فالنتيجة مطابقة، وإن وعد بـ 4 فهي غير مطابقة، ويجب أن يكتب السجل ذلك كما هو.\n\nيبقى RTO المقيس في اختبار حداً أدنى متفائلاً: جهاز جديد ولا أحد ينتظر ولا ضغط. ومع ذلك فهو أفضل من حساب تقريبي، خاصة مع مستودع كبير: فمع سرعة اتصال متواضعة يكفي زمن التنزيل ليجعل RTO النظري غير واقعي. قِس السرعة الفعلية أثناء الاستعادة ودوّنها في السجل.",{"type":87,"title":88,"headers":89,"rows":93},"comparison","سجل الاختبار: الحقول المطلوب ملؤها",[90,91,92],"الحقل","ما يُدوَّن","مثال",[94,98,102,106,110,114,118,122],[95,96,97],"التاريخ والموقع","يوم الاختبار وموقع العميل المستعاد","DD\u002FMM\u002FYYYY، موقع تجريبي",[99,100,101],"الأداة واللقطة","أداة النسخ ومعرّف اللقطة وطابعها الزمني","Restic، معرّف قصير، طابع زمني كامل",[103,104,105],"المدة وRTO","ساعة البدء وساعة الانتهاء الموثقة والمدة المرصودة","البدء 09:00، الانتهاء 10:40، RTO 1 h 40",[107,108,109],"RPO المرصود","الفارق بين الحادث المحاكى واللقطة مقارناً بالهدف","11 ساعة مرصودة مقابل 24 ساعة موعودة",[111,112,113],"الملاحظات","كل ما عطّل الاستعادة أو أبطأها","مجلد الملفات المرفوعة خارج النطاق",[115,116,117],"التصحيح والأجل","الإجراء والمسؤول وتاريخ التنفيذ","إضافة المجلد إلى المستودع قبل الاختبار القادم",[119,120,121],"الموقِّع","الشخص الذي يشهد على الاختبار","الاسم والصفة والتوقيع",[123,124,125],"خارج النطاق","ما لم يُختبر","البريد وDNS والشهادات والخدمات الخارجية",{"type":87,"title":127,"headers":128,"rows":132},"أوامر مرجعية لكل أداة",[129,130,131],"الأداة","عرض نقاط الاستعادة","الاستعادة والتحقق",[133,137,141,145,149,153],[134,135,136],"Restic","`restic -r \u003Crepository> snapshots`","`restic -r \u003Crepository> restore \u003Cid> --target \u002Fsrv\u002Frestore`",[138,139,140],"Restic، سلامة المستودع","`restic -r \u003Crepository> check`","يتحقق `check` من البنية؛ ويعيد `--read-data` قراءة المستودع كاملاً، و`--read-data-subset=10%` جزءاً عشوائياً منه",[142,143,144],"Borg","`borg list \u003Crepository>` ثم `borg list \u003Crepository>::\u003Carchive>`","`borg extract --list \u003Crepository>::\u003Carchive>` من المجلد الهدف؛ ويقرأ `--dry-run` ويتحقق دون كتابة",[146,147,148],"PostgreSQL، تفريغ custom","`pg_restore --list backup.dump`","`pg_restore --create --dbname=postgres backup.dump` ثم عدّ جدول شاهد",[150,151,152],"PostgreSQL، تفريغ نصي","التحقق من حجم الملف وتاريخه","`psql -f backup.sql` ثم عدّ جدول شاهد",[154,155,156],"الملفات المرفوعة","مقارنة عدد ملفات المستودع بالإنتاج","`find \u002Fsrv\u002Frestore -type f | wc -l` ثم فتح ثلاثة ملفات عشوائياً",{"type":40,"title":158,"items":159},"فخاخ الاستعادة وأعراضها",[160,161,162,163,164,165,166],"**مفتاح المستودع مخزَّن على الخادم المنكوب** — لا يفتح الجهاز الجديد المستودع ويعرض `wrong password or no key found`؛ احتفظ بالمفتاح في خزنة منفصلة مع حاملَين له.","**قاعدة البيانات مستعادة والملفات المرفوعة غائبة** — يظهر الموقع لكن الصور والمرفقات تعيد 404؛ كان النطاق يشمل القاعدة وحدها أو الشيفرة وحدها.","**إصدار PHP أو قاعدة البيانات مختلف** — صفحة بيضاء أو خطأ في الصياغة أو الترحيل؛ دوّن في السجل إصدارات كل موقع.","**الأسرار وملف `.env` بلا نسخة** — يعمل التطبيق لكنه لا يصل إلى قاعدة البيانات ولا خادم البريد ولا واجهات الأطراف الخارجية.","**مستودع أكبر من سعة النطاق الترددي** — يبدو RTO النظري جيداً ويتجاوز الحقيقي الوعد؛ قِس السرعة قبل أن تعد.","**تفريغ مبتور** — لا يطابق عدد صفوف الجدول الشاهد الإنتاج؛ أعد النسخ وتحقق من حجمه.","**مهام مجدولة لم تُنشأ من جديد** — يستجيب الموقع لكنه لم يعد يرسل رسائل أو تذكيرات؛ احصِ مهام cron قبل الاختبار.",{"type":36,"title":168,"body":169},"استكشاف الأخطاء: أخطاء شوهدت أثناء التمرين","**`Fatal: wrong password or no key found`** — لا يجد Restic مفتاحاً يُفتح بكلمة المرور المقدمة. الأسباب الشائعة التي ينبغي استبعادها واحداً واحداً: كلمة مرور بأحرف خاصة غيّرها الـ shell، أو كلمة مرور قُرئت من الدخل القياسي، أو عنوان مستودع S3 بنمط خاطئ، أو ملف مفتاح تالف. جرّب `--password-file` أو المتغير `RESTIC_PASSWORD`، وتحقق من عنوان المستودع ثم نفّذ `restic key list`. وإن ضاعت كلمة المرور فعلاً، ضاعت معها بيانات المستودع: سجّل ذلك كملاحظة حرجة.\n\n**لا توجد نقطة استعادة حديثة** — لا يعرض `restic snapshots` أي شيء من الأسبوع الأخير: مهمة النسخ تتوقف بصمت. أصلح المؤقت وأضف تنبيهاً.\n\n**ينتهي `pg_restore` مع أخطاء متجاهَلة** — يتابع افتراضياً ويعرض عدّاداً في النهاية. أعد التنفيذ بالخيار `--exit-on-error` ليتوقف عند أول خطأ، واقرأه قبل إعلان نجاح الاختبار.\n\n**الملفات موجودة لكن الموقع يعيد 403** — ترك التنفيذ بصلاحيات root الملفات لمالك خاطئ. أعدها إلى مستخدم خادم الويب.",{"type":171,"title":172,"body":173},"tip","كلمة مرور المستودع لا تعيش وحدها على الخادم","احتفظ بها في خزنة الفريق مع نسخة مختومة لدى مسؤول ثانٍ. يبدأ التمرين بفتح المستودع من تلك الخزنة: إن اضطر أحدهم إلى الدخول إلى خادم الموقع ليجد كلمة المرور، فقد فشل الاختبار فعلاً، وهذه أنفع ملاحظة يمكن أن يكشفها.",{"type":36,"title":175,"body":176},"السجل المسلَّم للعميل: صفحة واحدة وما لم يُختبر","يتسع السجل لصفحة واحدة: ترويسة بالعميل والموقع والتاريخ؛ وجدول الحقول الثمانية؛ وخلاصة في جملة واحدة، مطابقة أو غير مطابقة لهدفي RPO وRTO؛ وخطة تصحيحية مؤرخة؛ وتوقيع. خصص في الأخير إطاراً بعنوان «لم يُختبر في هذا التمرين»: صناديق البريد وقابلية التسليم، وDNS والتفويض، وشهادات TLS، والخدمات الخارجية كالدفع أو نظام CRM، وأي موقع آخر في الحساب.\n\nالسجل الذي لا يكتب حدوده يُقرأ على أنه «كل شيء منسوخ احتياطياً»، وهذا وعد لا يستطيع أحد الوفاء به. احتفظ بسجلات كل فصل: اختبار واحد يثبت يوماً واحداً، وسلسلة اختبارات تثبت ممارسة. دوّن أيضاً إصدار PHP لكل موقع كما في الدليل الخاص بجرد الإصدارات في محفظة العملاء: إنه الفخ الأكثر تكراراً عند إعادة الاستعادة.",{"type":36,"title":178,"body":179},"من جهة العقد: ما يجب أن يسمّيه بند النسخ الاحتياطي","يسمّي البند المفيد سبع نقاط: النطاق (الملفات وقواعد البيانات والإعدادات)، والتكرار، ومدة الاحتفاظ، وهدفي RPO وRTO، وتكرار الاختبارات ودليلها، والمسؤولية إذا فشلت الاستعادة، وصاحب صلاحيات الوصول إلى المستودع. هذا ليس استشارة قانونية: اعرض النص على محامٍ. ولا تَعِد أبداً بما لا تضمنه البنية التحتية الأساسية.\n\nوفي هذه النقطة، نسخ ServOrbit.com الاحتياطية أسبوعية في الفئة الأولى، ويومية في Pro وفي جميع عروض استضافة الموزعين. ويُستنتج الحد الأدنى لـ RPO من هذا التكرار: حتى سبعة أيام مع نسخة أسبوعية، وحتى يوم واحد مع نسخة يومية. لذلك يتطلب RPO أقل من يوم نسخة تطبيقية خاصة بالوكالة إضافة إلى ذلك. أما مدة الاستعادة فلا يُستنتج أي التزام من التكرار: إنها تُقاس، بالتمرين الوارد أعلاه.",{"type":36,"title":181,"body":182},"جعل الاختبار قابلاً للفوترة: حجة بيع لا عبء","الاعتراض معروف: العميل لا يطلبه والوقت غير مفوتر. هناك جوابان. أدرج في عقد الصيانة بنداً «اختبار استعادة فصلي مع تسليم السجل»، أو افوتر نصف اليوم على حدة. وعامل السجل كمخرَج: بعد الحادث يبين ما اختُبر وصُحّح، وأثناء البيع يجيب عن «أثبتوا ذلك» قبل أن يُطرح السؤال.\n\nللحفاظ على الإيقاع في محفظة مواقع، خطط لتناوب: موقع واحد لكل عميل في كل فصل، وجدول يُحدَّد في بداية السنة. يُستأجر خادم VPS التجريبي ويُحذف عند الطلب؛ وشروطه في صفحة العرض.","محفظة مواقع وأدلة يجب تقديمها","الوكالة التي عليها إثبات استعاداتها تحتاج مكاناً واحداً لمحفظتها: النطاقات والاستضافة وخوادم VPS التجريبية المؤقتة. تجمع مساحة الوكالات في ServOrbit.com الخدمات وتواريخ الانتهاء في مكان واحد: تحتفظون بعلاقة العميل ونحن ندير البنية التحتية.","اكتشف عرض الوكالات","\u002Fsolutions\u002Fagences",[188,203,218],{"id":189,"slug":190,"slugs":191,"title":195,"excerpt":196,"readTime":17,"views":18,"isPinned":19,"publishedAt":197,"updatedAt":198,"category":199,"categories":200,"featuredImage":30,"bgImage":31,"posterImage":202,"relatedSolution":30},347,"restic-s3-3-2-1-backup-strategy-vps-ar",{"fr":192,"en":193,"ar":190,"es":194},"backup-vps-restic-s3-3-2-1","restic-s3-3-2-1-backup-strategy-vps","estrategia-3-2-1-backup-vps-restic-s3","استراتيجية 3-2-1 لخادم VPS مع Restic وS3","ابنِ استراتيجية 3-2-1 كاملة على خادم VPS: Restic إلى Backblaze B2 أو Cloudflare R2، ومؤقّت systemd، وسياسة احتفاظ، واختبار استعادة مؤتمت.","2026-09-10T00:00:00+00:00","2026-10-20T23:18:06+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[201],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fbackup-vps-restic-s3-3-2-1-poster.svg",{"id":204,"slug":205,"slugs":206,"title":210,"excerpt":211,"readTime":212,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":213,"category":214,"categories":215,"featuredImage":30,"bgImage":31,"posterImage":217,"relatedSolution":30},521,"قائمة-تدقيق-أمان-vps-شهرية-للعملاء-للوكالات",{"fr":207,"en":208,"ar":205,"es":209},"checklist-audit-securite-mensuel-vps-clients-agence","monthly-security-audit-checklist-client-vps-agency","auditoria-seguridad-mensual-vps-clientes-agencia-checklist","تدقيق أمان VPS شهري للعميل: قائمة في 45 دقيقة","سبعة فحوصات شهرية لخادم VPS العميل: التحديثات والنواة وحسابات SSH والمنافذ والشهادات والنسخ الاحتياطية والسجلات، مع تقرير مؤرخ.",10,"2026-10-29T03:10:22+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[216],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fchecklist-audit-securite-mensuel-vps-clients-agence-poster.svg",{"id":219,"slug":220,"slugs":221,"title":225,"excerpt":226,"readTime":17,"views":18,"isPinned":19,"publishedAt":227,"updatedAt":228,"category":229,"categories":230,"featuredImage":30,"bgImage":31,"posterImage":232,"relatedSolution":30},508,"جرد-إصدارات-php-لمواقع-العملاء-منهج-للوكالات",{"fr":222,"en":223,"ar":220,"es":224},"inventaire-versions-php-parc-sites-clients-agence","php-version-inventory-for-client-sites-an-agency-method","inventario-de-versiones-php-de-sitios-cliente-metodo-de-agencia","جرد إصدارات PHP لمواقع العملاء: منهج للوكالات","سجل لإصدار PHP الذي يخدمه كل موقع عميل لدى عدة مستضيفين: مستويات الوصول، سكربتات دفعية، أولويات، رسالة للعميل وإثبات مؤرخ للتصحيح.","2026-10-27T00:00:00+00:00","2026-10-27T23:58:39+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[231],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Finventaire-versions-php-parc-sites-clients-agence-poster.svg",1793251107230]