ٻيو بيڪ اپ - هڪ اسڪرپٽ کان وڌيڪ، هڪ سسٽم کان وڌيڪ آسان

اتي ڪيترائي بيڪ اپ سسٽم آهن، پر ڇا ڪجي جيڪڏهن خدمت ڪيل سرور مختلف علائقن ۽ ڪلائنٽ ۾ پکڙيل آهن ۽ توهان کي آپريٽنگ سسٽم سان ڪرڻ جي ضرورت آهي؟

ٻيو بيڪ اپ - هڪ اسڪرپٽ کان وڌيڪ، هڪ سسٽم کان وڌيڪ آسان

منجهندند حبر!
منهنجو نالو Natalya آهي. مان اين پي او ڪرسٽا ۾ ايپليڪيشن ايڊمنسٽريٽر گروپ جو ٽيم ليڊر آهيان. اسان اسان جي ڪمپني جي پروجيڪٽ گروپ لاء Ops آهيون. اسان وٽ هڪ بلڪه منفرد صورتحال آهي: اسان اسان جي سافٽ ويئر کي انسٽال ۽ برقرار رکون ٿا ٻنهي اسان جي ڪمپني جي سرورز تي ۽ سرورز تي موجود ڪلائنٽ جي سائيٽن تي. انهي حالت ۾، سڄي سرور کي بيڪ اپ ڪرڻ جي ڪا ضرورت ناهي. صرف "ضروري ڊيٽا" ضروري آهي: DBMS ۽ انفرادي فائل سسٽم ڊائريڪٽريز. يقينا، گراهڪ وٽ آهن (يا نه آهن) انهن جا پنهنجا بيڪ اپ ضابطا ۽ اڪثر اتي بيڪ اپ رکڻ لاءِ ڪجهه قسم جي ٻاهرين اسٽوريج مهيا ڪن ٿا. انهي حالت ۾، هڪ بيڪ اپ ٺاهڻ کان پوء، اسان ٻاهرين اسٽوريج ڏانهن موڪلڻ کي يقيني بڻائي سگهون ٿا.

ڪجهه وقت لاءِ، بيڪ اپ جي مقصدن لاءِ، اسان بش اسڪرپٽ سان ڪيو، پر جيئن جيئن ترتيب ڏيڻ جا اختيار وڌندا ويا، تيئن تيئن هن اسڪرپٽ جي پيچيدگي متناسب طور وڌي وئي، ۽ هڪ نقطي تي اسان کي ضرورت پيش آئي ته ”ان کي زمين تي تباهه ڪري ڇڏيو، ۽ پوءِ. ...“.

تيار ڪيل حل مختلف سببن لاءِ مناسب نه هئا: بيڪ اپ کي غير مرڪزيت ڏيڻ جي ضرورت جي ڪري، ڪلائنٽ تي مقامي طور تي بيڪ اپ اسٽور ڪرڻ جي گهرج، سيٽ اپ جي پيچيدگي، درآمد جي متبادل، رسائي جي پابنديون.

اسان کي ائين لڳي رهيو هو ته اسان کي پنهنجو ڪجهه لکڻ آسان آهي. ساڳئي وقت، مان ڪجهه حاصل ڪرڻ چاهيان ٿو جيڪو ايندڙ اين سالن تائين اسان جي صورتحال لاء ڪافي هوندو، پر ممڪن طور تي گنجائش وڌائڻ جي امڪان سان.

ڪم جا شرط هن ريت هئا:

  1. بنيادي بيڪ اپ مثال خودمختيار آهي ۽ مقامي طور تي هلندو آهي
  2. بيڪ اپ ۽ لاگز جو ذخيرو هميشه ڪلائنٽ جي نيٽ ورڪ ۾ هوندو آهي
  3. هڪ مثال ماڊلز تي مشتمل هوندو آهي - هڪ قسم جو ”ڪنسٽرڪٽر“
  4. موجوده لينڪس جي تقسيم سان مطابقت گهربل آهي، بشمول پراڻيون، امڪاني ڪراس پليٽ فارم گهربل آهي
  5. مثال سان ڪم ڪرڻ لاء، ssh ذريعي رسائي ڪافي آهي؛ اضافي بندرگاهن کي کولڻ ضروري ناهي
  6. سيٽ اپ ۽ آپريشن جي وڌ ۾ وڌ آسان
  7. اهو ممڪن آهي (پر ضروري ناهي) هڪ الڳ مثال هجي جيڪو توهان کي مرڪزي طور تي مختلف سرورن کان بيڪ اپ جي حالت ڏسڻ جي اجازت ڏئي

توهان ڏسي سگهو ٿا ته اسان هتي ڇا آيا آهيون: github.com/javister/krista-backup
سافٽ ويئر python3 ۾ لکيل آهي؛ Debian، Ubuntu، CentOS، AstraLinux 1.6 تي ڪم ڪري ٿو.

دستاويز کي مخزن جي دستاويز ڊاريڪٽري ۾ پوسٽ ڪيو ويو آهي.

بنيادي تصور جيڪي سسٽم هلائي ٿو:
عمل - ھڪڙو عمل جيڪو ھڪڙي ايٽمي آپريشن کي لاڳو ڪري ٿو (ڊيٽابيس بيڪ اپ، ڊاريڪٽري بيڪ اپ، ڊاريڪٽري A کان ڊاريڪٽري B تائين، وغيره). موجوده ڪارناما ڪور/ايڪشن ڊاريڪٽري ۾ واقع آهن
ٽاسڪ - ڪم، عملن جو هڪ سيٽ جيڪو بيان ڪري ٿو هڪ منطقي "بيڪ اپ ٽاسڪ"
شيڊول - شيڊول، ڪمن جو هڪ سيٽ ڪم جي عمل جي وقت جي اختياري اشاري سان

بيڪ اپ ٺاھ جوڙ هڪ yaml فائل ۾ ذخيرو ٿيل آهي؛ عام جوڙجڪ جوڙجڪ:

  • عام سيٽنگون
  • ڪارناما سيڪشن: هن سرور تي استعمال ٿيل عملن جو بيان
  • شيڊول سيڪشن: سڀني ڪمن جو بيان (ڪارنن جو سيٽ) ۽ ڪرون ذريعي انهن جي لانچ لاءِ شيڊول، جيڪڏهن اهڙي لانچ گهربل هجي

هڪ مثال config ڳولهي سگهجي ٿو هتي

اپليڪيشن هن وقت ڇا ڪري سگهي ٿي:

  • اسان لاءِ مکيه عملن جي مدد ڪئي وئي آهي: PostgreSQL بيڪ اپ pg_dump ذريعي، فائل سسٽم ڊاريڪٽري بيڪ اپ ذريعي ٽار؛ خارجي اسٽوريج سان آپريشن؛ ڊائريڪٽرن جي وچ ۾ rsync؛ بيڪ اپ گھمڻ (پراڻيون ڪاپيون حذف ڪرڻ)
  • هڪ خارجي اسڪرپٽ سڏڻ
  • هڪ الڳ ڪم جي دستي عمل
    /opt/KristaBackup/KristaBackup.py run make_full_dump
  • توهان شامل ڪري سگهو ٿا (يا هٽائي) هڪ واحد ڪم يا مڪمل شيڊول ڪرنٽاب ۾
    /opt/KristaBackup/KristaBackup.py enable all
  • بيڪ اپ نتيجن جي بنياد تي ٽرگر فائل ٺاهيندي. ھي فنڪشن مفيد آھي زبڪس سان گڏ مانيٽرنگ بيڪ اپ لاءِ
  • ويب پي يا ويب موڊ ۾ پس منظر ۾ ڪم ڪري سگھي ٿو
    /opt/KristaBackup/KristaBackup.py web start [--api]

طريقن جي وچ ۾ فرق: webapi وٽ ويب انٽرفيس نه آهي، پر ايپليڪيشن ڪنهن ٻئي مثال جي درخواستن جو جواب ڏئي ٿي. ويب موڊ لاءِ، توهان کي فلاسڪ ۽ ڪيترائي اضافي پيڪيجز انسٽال ڪرڻ گهرجن، ۽ اهو هر هنڌ قابل قبول ناهي، مثال طور تصديق ٿيل AstraLinux SE ۾.

ويب انٽرفيس ذريعي، توهان ڏسي سگهو ٿا اسٽيٽس ۽ لاگ ان ڳنڍيل سرورز جي بيڪ اپ جي: ”ويب مثال“ API ذريعي ”بيڪ اپ مثالن“ مان ڊيٽا جي درخواست ڪري ٿو. ويب تائين رسائي اختيار جي ضرورت آهي، ويبپي تائين رسائي نه آهي.

ٻيو بيڪ اپ - هڪ اسڪرپٽ کان وڌيڪ، هڪ سسٽم کان وڌيڪ آسان

غلط بيڪ اپ جا لاگز رنگ ۾ نشان لڳل آهن: خبردار - پيلو، غلطي - ڳاڙهو.

ٻيو بيڪ اپ - هڪ اسڪرپٽ کان وڌيڪ، هڪ سسٽم کان وڌيڪ آسان

ٻيو بيڪ اپ - هڪ اسڪرپٽ کان وڌيڪ، هڪ سسٽم کان وڌيڪ آسان

جيڪڏهن منتظم کي پيرا ميٽرن تي چيٽ شيٽ جي ضرورت نه آهي ۽ سرور آپريٽنگ سسٽم هڪجهڙا آهن، توهان فائل گڏ ڪري سگهو ٿا ۽ تيار ڪيل پيڪيج کي ورهائي سگهو ٿا.

اسان هن افاديت کي خاص طور تي جواب ڏيڻ جي ذريعي ورهايو ٿا، ان کي رول آئوٽ ڪري پهرين ڪجهه گهٽ ۾ گهٽ اهم سرورن ڏانهن، ۽ باقي سڀني کي جانچ ڪرڻ کان پوء.

نتيجي طور، اسان کي هڪ جامع، اسٽينڊ-اڪيلو ڪاپي افاديت ملي ٿي جيڪا خودڪار ٿي سگهي ٿي ۽ غير تجربيڪار منتظمين پاران پڻ استعمال ڪري سگهجي ٿي. اهو اسان لاءِ آسان آهي - ٿي سگهي ٿو اهو توهان لاءِ به ڪارائتو هوندو؟

جو ذريعو: www.habr.com

تبصرو شامل ڪريو