نسخ احتياطي واستعادة خادم Gitea

يمكن أن تحدث أي شيء في هذه الأوقات الصعبة

Page content

يجب إجراء نسخ احتياطي للعناصر التالية: 1) قاعدة البيانات، 2) تخزين الملفات، 3) بعض ملفات Gitea الأخرى. هيا نبدأ.

صورة جميلة لمحفظة HDD مفتوحة

في المقالة اختبار Gitea قمنا بتثبيت خادم Gitea.

متى

الآن، فقط كإجراء وقائي ضد وقوع أشياء سيئة، من الضروري ممارسة إجراءات النسخ الاحتياطي واستعادة البيانات.

الأمان أفضل من الاعتذار لاحقًا.

أين

تحتوي بيانات خادم Gitea على ثلاث مكونات:

  • الكود
  • تخزين الملفات
  • قاعدة البيانات

في بيئة الاختبار، يأخذ كل شيء معًا أكثر من 700 ميغابايت:

استخدام القرص في Gitea

كما يوصون، من الضروري إيقاف جميع الخدمات وإجراء نسخ احتياطي لها جميعًا، نوعًا ما في نفس المعاملة.

وأيضًا استعادة البيانات، في نفس المعاملة أيضًا.

كيفية النسخ الاحتياطي

cd ~/gitea-srv-local

# نسخ احتياطي لقاعدة البيانات
sudo docker exec -t gitea-srv-local_db_1 bash -c 'pg_dump gitea -U gitea  --file=/var/lib/postgresql/backups/gitea-db-$(date +%Y-%m-%d).sql'

# إيقاف خادم Gitea
sudo docker-compose down

# تحقق من مجلد النسخ الاحتياطي
sudo ls postgres-backups

# إنشاء مجلد للنسخ الاحتياطي
mkdir gitea-backups

# نسخ احتياطي لمجلد Gitea
sudo tar -zcvf gitea-backups/gitea-gitea-$(date +%Y-%m-%d).tgz gitea/gitea

# نسخ احتياطي لمجلد Repos
sudo tar -zcvf gitea-backups/gitea-git-$(date +%Y-%m-%d).tgz gitea/git

# إعادة تشغيل الخادم
sudo docker-compose up -d

الخطوة الأخيرة: تسجيل الدخول إلى خادم آخر وسحب مجلد النسخ الاحتياطي هناك، أو إجراء بعض العمليات المعقدة أكثر على الملفات.

scp -r uname@gitea-srv-ip-addr:/home/uname/gitea-srv-local/gitea-backups ~/gitea-backups
scp -r uname@gitea-srv-ip-addr:/home/uname/gitea-srv-local/postgres-backups ~/postgres-backups

كيفية الاستعادة

في الواقع، هناك أكثر من ذلك قليلاً، خاصة مع الأذونات والهوك، لكن الفكرة هي نفسها.

لكن! تحقق من الوثائق الأصلية: https://docs.gitea.com/administration/backup-and-restore

# تثبيت الخادم أولاً
# ثم إيقافه
sudo docker-compose down

# استعادة الملفات
tar -zxvf gitea-git-___.tgz gitea/git
tar -zxvf gitea-gitea-___.tgz gitea/gitea

# إعادة تشغيل الخادم
sudo docker-compose up -d

# هنا بعض الأنشطة مع psql أو pg_restore
sudo docker exec -t gitea-srv-local_db_1 bash -c 'psql gitea -U gitea  --file=/var/lib/postgresql/backups/gitea-db-$(date +%Y-%m-%d).sql'

ثم انتقل إلى واجهة المستخدم وتحقق من النتائج.

روابط مفيدة