سؤال

أتساءل عما إذا كانت هناك طريقة سهلة ، أي مثل وظيفة كرون بسيطة ، بانتظام يحذب من مستودع GIT عن بُعد إلى مرآة قراءة محلية فقط لأغراض النسخ الاحتياطي؟

من الناحية المثالية ، فإنه سيسحب جميع الفروع والعلامات ، لكن السيد/الجذع/الرأس سيكون كافياً.

أنا فقط بحاجة إلى طريقة للتأكد من أنه إذا مات خادم GIT الرئيسي ، فلدينا موقع احتياطي يمكن أن نفشل يدويًا.

هل كانت مفيدة؟

المحلول

أولا قم بإنشاء مرآة مع

git clone --mirror git@somewhere.com:repo.git

ثم قم بإعداد وظيفة كرون مثل هذا:

*/1 * * * * gitbackup cd /backup/repo.git && git fetch -q --tags

هذا سيؤدي إلى النسخ الاحتياطي لنسخ التغييرات كل دقيقة. ربما تريد أن تفعل هذا بشكل متكرر.

نصائح أخرى

كما لاحظ أندرو ، فإن كل استنساخ من ريبو غيت هو نسخة احتياطية كاملة من الريبو. ومع ذلك ، إذا كنت تريد شيئًا ما يتم نسخه تلقائيًا إلى جهاز معين ، فيمكنك إنشاء ريبو عاري على خادم النسخ الاحتياطي ، وادفعه مع جميع الفروع التي تريد نسخها احتياطيًا في البداية. ثم قم فقط بإعداد خطاف تحديث منشور على الريبو "الرئيسي" بحيث بمجرد دفع الالتزامات ، فإنه يمضي قدما ويدفعهم إلى الريبو الاحتياطي. لا حاجة إلى وظيفة cron أو rsync ، ونسخة حية تقريبا.

هل لديك وصول مباشر إلى الخادم؟ ثم يمكنك فقط rsync ال .git الدليل

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top