تخطَّ إلى المحتوى
اختر لغة:العربية

النسخ الاحتياطي

كل ليلة يلتقط Kept لقطة restic واحدة: مشفّرة بكلمة مرور تختارها، ومن دون تكرار (فالليلة التي لا جديد فيها لا تضيف شيئًا تقريبًا)، وتُرسل إلى مكان غير قرص الخادم نفسه.

  • قاعدة البيانات، مفرَّغة من لحظة واحدة متسقة، مع بيان بعدد صفوف كل جدول وبصمة لبياناته، كي تُثبت الاستعادة أنها أعادت ما كان موجودًا بالضبط.
  • الملفات (الصور والفواتير والمستندات)، حين تُخزَّن على قرص الخادم. أما مع تخزين الملفات في S3 فلا: راجع أدناه.
  • نسخة مقروءة من كل موقع: صفحات ويب وجداول وصور مصغّرة وفواتير تُفتح في المتصفح بلا شيء سوى restic. راجع اقرأ جردك باستخدام restic وحده.

المفاتيح ليست في النسخة الاحتياطية. احفظ حزمة الاسترداد في مكان آخر.

الوجهة تُضبط بـ مستودع restic
مجلد: قرص آخر، أو مشاركة NAS مركّبة على الخادم KEPT_BACKUP_DIR (مسار مطلق خارج KEPT_DATA_DIR) <directory>/restic
حاوية متوافقة مع S3: ‏AWS، أو نقطة S3 لدى مزوّد آخر KEPT_BACKUP_S3_BUCKET وبقية متغيرات KEPT_BACKUP_S3_* restic/ تحت KEPT_BACKUP_S3_PREFIX
خادم SFTP KEPT_BACKUP_SFTP (بصيغة sftp: في restic) وKEPT_BACKUP_SFTP_KEY_FILE وKEPT_BACKUP_SFTP_KNOWN_HOSTS الموقع الذي تحدده

اختر وجهة واحدة، ويُفضَّل جهاز آخر أو مكان آخر: يُرفض المجلد الموجود على قرص بيانات Kept نفسه، وتنبّه صفحة الحالة حين تشارك الوجهة قرصًا معه. يُتوقع أن تعمل نقاط S3 لدى Backblaze B2 وCloudflare R2 لكنها لم تُختبر بعد. ويثبّت SFTP مفتاح المضيف من ملف known_hosts ولا يتصل إلا إن طابقه.

يضبط مديرو النسخة الوجهة وكلمة المرور في الإدارة ← النسخ الاحتياطي، عبر HTTPS، بعد الإقرار بحزمة الاسترداد. يتحقق زر «اختبار» من أن Kept يستطيع فتح المستودع (أو إنشاءه)، ويشغّل «انسخ الآن» نسخة فورًا. ومتغير البيئة يتقدّم على الشاشة ويظهر فيها مقفلًا، فيستطيع المشغّل تثبيت الوجهة في إعداد النشر.

كلمة المرور من ١٢ محرفًا على الأقل (KEPT_BACKUP_PASSWORD، أو تُضبط من الشاشة). لا كلمة مرور، لا نسخة احتياطية: لا يكتب Kept نسخة غير مشفّرة أبدًا. وإن ضاعت كلمة المرور صارت النسخة غير مقروءة، ولهذا هي في حزمة الاسترداد.

يعمل النسخ الاحتياطي في العامل بصلاحية مالك قاعدة البيانات، فيحتاج العامل إلى KEPT_OWNER_DATABASE_URL أيضًا. ومع Compose، يمرّر compose.yaml أصلًا كل متغيرات KEPT_BACKUP_* من .env إلى Kept وإلى migrate (الذي يلتقط لقطة قبل الترقية)؛ ويضيف ملف compose.override.yaml بجانبه بيانات دخول المالك، ولوجهة المجلد التركيبَ على الخدمتين:

services:
kept:
environment:
KEPT_OWNER_DATABASE_URL: postgres://kept_owner:${KEPT_DB_OWNER_PASSWORD}@db:5432/kept
volumes:
- /mnt/backup/kept:/backups
migrate:
volumes:
- /mnt/backup/kept:/backups

ثم اضبط الوجهة وكلمة المرور من الشاشة، أو ثبّتهما في .env (KEPT_BACKUP_DIR=/backups وKEPT_BACKUP_PASSWORD=…).

ويجب أن يملك مستخدمُ Kept المجلد:

نافذة طرفيّة
sudo mkdir -p /mnt/backup/kept
sudo chown 10001:10001 /mnt/backup/kept
sudo chmod 700 /mnt/backup/kept
  • متى: كل ليلة في الوقت المضبوط في الإدارة ← النسخ الاحتياطي، بصيغة HH:MM بتوقيت UTC (الافتراضي 02:30). يسري الوقت الجديد من الليلة التالية بلا إعادة تشغيل؛ ويثبّته KEPT_BACKUP_TIME بدلًا من ذلك.
  • «انسخ الآن» يشغّل نسخة فورًا؛ والضغط عليه ثانيةً بينما تنتظر تلك النسخة أو تعمل يُرفض («نسخ احتياطي يجري الآن») بدل أن تُصفّ مرتين.
  • مدة الاحتفاظ: أحدث لقطة من كل يوم من آخر ٧ أيام، وكل أسبوع من آخر ٤ أسابيع، وكل شهر من آخر ٦ أشهر (KEPT_BACKUP_KEEP_DAILY و_WEEKLY و_MONTHLY). ويُقرأ KEPT_BACKUP_KEEP القديم عددًا يوميًا لإصدار واحد. وتحتفظ لقطات ما قبل الترقية بآخر ٣ منها.
  • النسخة الصغيرة على نحو مريب (تفريغ أصغر من نصف حجم آخر نسخة سليمة، أو أشياء أو أماكن أو ملفات أقل بكثير) تُلتقط رغم ذلك، لكن لا يُحذف شيء قديم تلك الليلة ويُنبَّه المديرون، فلا تستطيع ليلة سيئة أن تُزيح اللقطات السليمة.

تعرض الإدارة ← الحالة آخر نسخة وعمرها، وعدد اللقطات، وحجم المستودع، وآخر تمرين استعادة، والأقراص. ويُنبَّه المديرون بالبريد والإشعارات حين:

التنبيه متى
فشل النسخ الاحتياطي تفشل عملية نسخ
نسخة قديمة لا نسخة سليمة منذ ٣٦ ساعة مع وجود وجهة
حجم مريب جاءت نسخة أصغر بكثير من آخر نسخة سليمة
مساحة القرص منخفضة امتلأ قرص البيانات أو مجلد الوجهة بنسبة ٨٥٪
إصدارات الحاوية معطّلة الملفات في S3 والحاوية لا تحتفظ بالإصدارات القديمة
حان تمرين الاستعادة لا تمرين استعادة منذ ٣٠ يومًا

يَنسخ restic الملفات الموجودة على القرص، لا الكائنات في حاوية. فمع KEPT_STORAGE=s3 تحوي اللقطة قاعدة البيانات والبيان والنسخة المقروءة، والحاوية نفسها هي التي تحفظ الملفات: فعّل إصدارات الحاوية (والنسخ المتماثل إلى منطقة أخرى إن وفّره مزوّدك). يتحقق Kept من الإصدارات في كل عملية وينبّه ما دامت معطّلة. ويقارن الفحص الأسبوعي وتمرين الاستعادة بصمة كل ملف في البيان بما في الحاوية.

النسخ التي أخذتها النسخة التجريبية قبل restic (runs/ وblobs/ بجانب مجلد restic/ الجديد) لا تُكتب مجددًا، وتبقى قابلة للاستعادة بالأمر kept admin restore --legacy <id> لإصدار واحد. احذفها حين تجتاز لقطة restic تمرين استعادة.