لینکس کویسٹ۔ جیتنے والوں کو مبارکباد دیں اور ہمیں کاموں کے حل کے بارے میں بتائیں

لینکس کویسٹ۔ جیتنے والوں کو مبارکباد دیں اور ہمیں کاموں کے حل کے بارے میں بتائیں

25 مارچ کو ہم نے رجسٹریشن کھولی۔ لینکس کویسٹیہ لینکس آپریٹنگ سسٹم کے چاہنے والوں اور ماہرین کے لیے ایک گیم ہے۔ کچھ اعدادوشمار: 1117 لوگوں نے گیم کے لیے رجسٹریشن کروائی، ان میں سے 317 نے کم از کم ایک چابی پائی، 241 نے پہلے مرحلے کا کام کامیابی سے مکمل کیا، 123 نے دوسرے اور 70 نے تیسرا مرحلہ پاس کیا۔ آج ہمارا کھیل اختتام کو پہنچ گیا ہے اور ہم اپنے جیتنے والوں کو مبارکباد پیش کرتے ہیں!

  • الیگزینڈر ٹیلڈیکوف نے پہلی پوزیشن حاصل کی۔
    الیگزینڈر نے اپنے آپ سے کہا کہ وہ سب سے عام سسٹم ایڈمنسٹریٹر ہے۔ وولگوگراڈ میں رہتے ہیں، تقریباً بیس سالوں سے مختلف یونکس جیسے نظاموں کا انتظام کر رہے ہیں۔ میں نے انٹرنیٹ فراہم کرنے والوں، ایک بینک، اور ایک سسٹم انٹیگریٹر میں کام کرنے کا انتظام کیا۔ اب وہ ایک چھوٹی کمپنی میں دور سے کام کرتا ہے، ایک بڑے غیر ملکی گاہک کے لیے کلاؤڈ انفراسٹرکچر پر کام کرتا ہے۔ موسیقی پڑھنا اور سننا پسند ہے۔ گیم کے بارے میں الیگزینڈر کا کہنا تھا کہ انہیں یہ گیم مجموعی طور پر پسند ہے، انہیں اس طرح کے کام بہت پسند ہیں۔ ایک کمپنی میں انٹرویو کے دوران میں نے Hackerrank سے ملتا جلتا کچھ کیا، یہ دلچسپ تھا۔
  • دوسری جگہ - رومن Suslov.
    ماسکو کا ایک ناول۔ اس کی عمر 37 سال ہے۔ جیٹ انفو سسٹم میں لینکس/یونکس انجینئر کے طور پر کام کرتا ہے۔ کام پر، مجھے لینکس/یونکس سسٹمز + SAN کا نظم و نسق اور ٹربل شوٹ کرنا ہے۔ دلچسپیاں مختلف ہیں: لینکس سسٹم، پروگرامنگ، ریورس انجینئرنگ، انفارمیشن سیکیورٹی، آرڈوینو۔ گیم کے بارے میں رومن نے نوٹ کیا کہ اسے مجموعی طور پر گیم پسند ہے۔ "میں نے اپنے دماغ کو تھوڑا سا کھینچا اور روزمرہ کے کام کی سرمئی روزمرہ کی زندگی سے وقفہ لیا۔ 🙂 میں مزید کام کرنا چاہوں گا، ورنہ اس سے پہلے کہ میرے پاس اس کا ذائقہ لینے کا وقت ہوتا، کھیل ختم ہو چکا تھا۔
  • تیسرا - alex3d۔
    ایلکس ماسکو میں رہتا ہے اور سافٹ ویئر ڈیولپمنٹ میں کام کرتا ہے۔ "مقابلے کے لیے آپ کا شکریہ، میری گوگل فو کی مہارت کو جانچنا دلچسپ تھا۔"

10 بہترین کھلاڑیوں کی درجہ بندی میں بھی:

  • یوگینی سالدایف
  • مارکل موخناچیوسکی
  • کونسٹنٹین کونوسوف
  • پاول سرجیف
  • ولادیمیر بووایف
  • ایوان بوبنوف
  • پاولو کلیٹس

ہم سمجھتے ہیں کہ ہمارے تمام مسائل کو حل کرنے کے لیے بہت سے اختیارات موجود ہیں؛ کچھ ممکنہ حل ذیل میں بیان کیے گئے ہیں۔

1. پہلا مرحلہ

ہم نے اسے "کیا آپ واقعی ایڈمن ہیں؟" کہا، چونکہ یہ کام کافی آسان تھا - گرم لیمپ سروس کو ٹھیک کرنا۔

1.1 دلچسپ حقائق:

کھیل کے پہلے 15 منٹ میں دو کھلاڑیوں کو پہلی چابی ملی، اور پہلے گھنٹے میں ہمارے پاس تین لیڈر تھے جنہوں نے ٹاسک مکمل کیا۔

1.2 ورزش

آپ ایک ایسی کمپنی میں کام کرنے گئے جہاں کافی عرصے سے کوئی قابل انفارمیشن ٹیکنالوجی ماہر نہیں تھا۔ اس سے پہلے کہ آپ چیزوں کو ترتیب دینا شروع کریں، آپ کو اس جلتے ہوئے مسئلے کو حل کرنے کی ضرورت ہے جو دفتر کے کام کو روک رہا ہے۔

صفائی کرنے والی خاتون نے سرور کیبنٹ کی پاور کیبل کو ایموپی سے پکڑ لیا۔ بجلی بحال کر دی گئی ہے، لیکن ایک انتہائی اہم ویب سائٹ ابھی تک کام نہیں کر رہی ہے۔ ویب سائٹ اہم ہے کیونکہ کمپنی معلومات کی حفاظت کے بارے میں زیادہ فکر مند نہیں ہے، اور اس کے مرکزی صفحہ پر آپ کو واضح متن میں سی ای او کے کمپیوٹر کا ایڈمنسٹریٹر پاس ورڈ مل سکتا ہے۔

دوسرے دن پاس ورڈ بدل گیا، لیکن سب نیا بھول گئے، ڈائریکٹر کام نہیں کر سکتا۔ افواہیں ہیں کہ اس مشین میں مزید چابیاں تھیں جو اکاؤنٹنگ دستاویزات کی بیک اپ کاپی کو سمجھنے میں ہماری مدد کر سکتی ہیں۔

ہر کوئی اس مسئلے کے فوری حل کی توقع رکھتا ہے!

1.3. حل

1. سب سے پہلے، آپ کو ورچوئل مشین پر روٹ پاس ورڈ تبدیل کرنے کی ضرورت ہے تاکہ اس تک رسائی حاصل کی جاسکے۔ شروع کرتے وقت، ہم دیکھتے ہیں کہ یہ Ubuntu 16.04 سرور ہے۔

روٹ پاس ورڈ کو دوبارہ ترتیب دینے کے لیے، ہم مشین کو دوبارہ شروع کرتے ہیں، لوڈ کرتے وقت، گرب مینو ظاہر ہونے کے وقت، "e" بٹن کے ساتھ اوبنٹو آئٹم میں ترمیم کرنے کے لیے جائیں۔ لائن لینکس میں ترمیم کریں، اسے آخر میں شامل کریں۔ init=/bin/bash. ہم Ctrl+x کے ذریعے لوڈ کرتے ہیں، ہمیں ایک bash ملتا ہے۔ روٹ کو rw کے ساتھ دوبارہ ماؤنٹ کریں، پاس ورڈ تبدیل کریں:

$ mount -o remount,rw /dev/mapper/ubuntu--vg-root
$ passwd

مطابقت پذیری کے بارے میں مت بھولنا، دوبارہ شروع کریں.

2. شرط کہتی ہے کہ ہمارا ویب سرور کام نہیں کر رہا ہے، دیکھیں:

$ curl localhost
Not Found
The requested URL / was not found on this server.
Apache/2.4.18 

یعنی حقیقت میں، اپاچی چل رہا ہے، لیکن کوڈ 404 کے ساتھ جواب دیتا ہے۔ آئیے کنفیگریشن کو دیکھتے ہیں:

$ vim /etc/apache2/sites-enabled/000-default.conf

یہاں ایک کلید بھی ہے - StevenPaulSteveJobs۔

راستے کی جانچ کر رہا ہے۔ /usr/share/WordPress - ایسی کوئی چیز نہیں ہے، لیکن وہاں ہے /usr/share/wordpress. تشکیل میں ترمیم کریں اور اپاچی کو دوبارہ شروع کریں۔

$ systemctl restart apache2

3. دوبارہ کوشش کریں، ہمیں غلطی ملتی ہے:

Warning: mysqli_real_connect(): (HY000/2002): Connection refused in /usr/share/wordpress/wp-includes/wp-db.php on line 1488

ڈیٹا بیس نہیں چل رہا ہے؟

$ systemctl status mysql
Active: active (running)

کیا معاملہ ہے؟ ہمیں اس کا پتہ لگانے کی ضرورت ہے۔ ایسا کرنے کے لیے، آپ کو MySQL تک رسائی حاصل کرنے کی ضرورت ہے، جیسا کہ میں بیان کیا گیا ہے۔ دستاویزات. دستاویزی نکات میں سے ایک تجویز کرتا ہے کہ ہم آپشن کو رجسٹر کریں۔ skip-grant-tables в /etc/mysql/mysql.conf.d/mysqld.cnf. یہاں ایک کلید بھی ہے - AugustaAdaKingByron۔

صارف کے حقوق کو درست کرنا 'wp'@'localhost'. ہم MySQL لانچ کرتے ہیں، اسے نیٹ ورک پر قابل رسائی بناتے ہیں، کنفگ میں موجود آپشن پر تبصرہ کرتے ہیں۔ skip-networking.

4. ان مراحل کے بعد، ویب سرور شروع ہوتا ہے، لیکن سائٹ پھر بھی کام نہیں کرتی کیونکہ

Warning: require_once(/usr/share/wordpress/wp-content/themes/twentysixteen/footer.php): failed to open stream: Permission denied in /usr/share/wordpress/wp-includes/template.php on line 562

ہم فائل کے حقوق میں ترمیم کرتے ہیں۔

$ chmod 644 /usr/share/wordpress/wp-content/themes/twentysixteen/footer.php

ہم صفحہ کو تازہ کرتے ہیں، سائٹ پر جائیں اور کلید تلاش کریں - BjarneStroustrup! ہمیں تینوں چابیاں مل گئیں، ہمارے ڈائریکٹر کام کر سکتے ہیں، ہم نے اکاؤنٹنگ فائلوں کو ڈکرپٹ کیا۔ ہر کوئی خوش ہے، اور کمپنی میں انفراسٹرکچر، بیک اپ اور سیکیورٹی قائم کرنے کے لیے آپ کے سامنے بہت کام ہے۔

2. دوسرا مرحلہ

تجزیات جمع کرنے کا مسئلہ حل کرنا ضروری تھا۔ ہر کوئی تجزیات سے محبت کرتا ہے - اسے کون، کہاں اور کس مقدار میں استعمال کرتا ہے۔ ہم ایک ایسا کیس لے کر آئے ہیں جس کا سامنا تمام انجینئرز کو زندگی میں کسی نہ کسی شکل میں کرنا پڑ سکتا ہے۔

2.1 دلچسپ حقائق

ہمارے ایک کھلاڑی نے کھیل کے پہلے 10 منٹ کے اندر صحیح کلید داخل کی، اور پہلے گھنٹے کے اندر ہمارے پاس ایک لیڈر تھا جس نے کام مکمل کیا۔

2.2 ورزش

آپ کمپنی میں کام کرنے گئے، مینیجر آپ کے پاس آئے اور آپ سے پوچھا کہ افریقہ سے خطوط کس کو بھیجے گئے ہیں۔ ہمیں ان کی بنیاد پر سب سے اوپر 21 وصول کنندگان کے پتے بنانے کی ضرورت ہے۔ وصول کنندگان کے پتے کے پہلے حروف کلید ہیں۔ ایک چیز: میل سرور جس کے ذریعے خطوط بھیجے گئے وہ لوڈ نہیں ہوتا ہے۔ ہر کوئی اس مسئلے کے فوری حل کی توقع رکھتا ہے!

2.3. حل

1. سرور fstab میں غیر موجود سویپ پارٹیشن کی وجہ سے بوٹ نہیں ہوتا ہے؛ جب لوڈ ہو رہا ہے، سسٹم اسے ماؤنٹ کرنے کی کوشش کرتا ہے اور کریش ہو جاتا ہے۔ بوٹ کیسے کریں؟

تصویر ڈاؤن لوڈ کریں، ہم نے CentOS 7 ڈاؤن لوڈ کیا، Live CD/DVD سے بوٹ (ٹربل شوٹنگ -> ریسکیو)، سسٹم کو ماؤنٹ کریں، ترمیم کریں۔ /etc/fstab. ہمیں فوری طور پر پہلی کلید مل گئی - GottfriedWilhelm11646Leibniz!

تبادلہ بنائیں:

$ lvcreate -n swap centos -L 256M
$ sync && reboot

2. ہمیشہ کی طرح، کوئی پاس ورڈ نہیں ہے، آپ کو ورچوئل مشین پر روٹ پاس ورڈ تبدیل کرنے کی ضرورت ہے۔ ہم پہلے ہی کام میں یہ کر چکے ہیں۔ ہم سرور کو تبدیل کرتے ہیں اور کامیابی کے ساتھ لاگ ان کرتے ہیں، لیکن یہ فوری طور پر ریبوٹ میں چلا جاتا ہے۔ سرور اتنی رفتار سے بھرا ہوا ہے کہ آپ کے پاس تمام لاگز کو غور سے دیکھنے کا وقت بھی نہیں ہے۔ کیسے سمجھیں کہ کیا ہو رہا ہے؟

ایک بار پھر ہم لائیو سی ڈی سے بوٹ کرتے ہیں، سسٹم لاگز کا بغور مطالعہ کرتے ہیں اور، صرف اس صورت میں، کرون کو دیکھتے ہیں، کیونکہ اس طرح کے وقفے وقفے سے۔ وہاں ہمیں مسئلہ اور دوسری کلید ملتی ہے - Alan1912MathisonTuring!

میں درکار ہے۔ /etc/crontab لائن کو حذف کریں یا تبصرہ کریں۔ echo b > /proc/sysrq-trigger.

3. جس کے بعد سرور لوڈ ہو گیا، اور آپ مینیجرز کا کام مکمل کر سکتے ہیں: "افریقہ میں پتے کیا ہیں؟" یہ معلومات عام طور پر عوام کے لیے دستیاب ہوتی ہیں۔ آپ یہ معلومات انٹرنیٹ پر "ip address africa"، "geoip database" کے فقرے استعمال کر کے حاصل کر سکتے ہیں۔ مسئلہ کو حل کرنے کے لیے، آپ آزادانہ طور پر دستیاب ایڈریس ڈسٹری بیوشن ڈیٹا بیس (geoip) استعمال کر سکتے ہیں۔ ہم نے ڈیٹا بیس کو بطور معیار استعمال کیا۔ میکس مائنڈ جیو لائٹ 2، ایک Creative Commons Attribution-ShareAlike 4.0 لائسنس کے تحت دستیاب ہے۔

آئیے صرف لینکس سسٹم کی افادیت کا استعمال کرتے ہوئے اپنے مسئلے کو حل کرنے کی کوشش کرتے ہیں، لیکن عام طور پر اسے بہت سارے طریقوں سے حل کیا جا سکتا ہے: ٹیکسٹ فلٹرنگ یوٹیلیٹیز کا استعمال اور مختلف پروگرامنگ زبانوں میں اسکرپٹ کا استعمال۔

شروع کرنے کے لیے، ہم میل لاگ سے صرف "بھیجنے والے-وصول کنندہ IP" کے جوڑے حاصل کریں گے۔ /var/log/maillog (آئیے ای میل وصول کنندگان کی ایک میز بنائیں - بھیجنے والا IP)۔ یہ مندرجہ ذیل کمانڈ کے ساتھ کیا جا سکتا ہے:

$ cat /var/log/maillog | fgrep -e ' connect from' -e 'status=sent' | sed 's/[]<>[]/ /g' | awk '/connect from/ {ip=$11} /status=sent/ {print $10" "ip}' > log1.txt

اور اس سے پہلے کہ ہم افریقی پتوں کا ڈیٹا بیس مرتب کرنا جاری رکھیں، آئیے ارسال کرنے والوں کے سرفہرست IP پتوں پر ایک نظر ڈالیں۔

$ cat log1.txt | cut -d' ' -f1 | sort | uniq -c | sort -r | head -n 40
5206 [email protected]
4165 [email protected]
3739 [email protected]
3405 [email protected]
3346 [email protected]

ان سب میں، اوپر سے پہلے تین وصول کنندگان حروف کی تعداد کے لحاظ سے واضح طور پر نمایاں ہیں۔ اگر آپ بھیجنے والوں کے آئی پی ایڈریس کو گرپ کرتے ہیں جو اس ٹاپ 3 سے ایڈریس پر بھیجے گئے ہیں، تو آپ کو کچھ نیٹ ورکس کی واضح برتری نظر آئے گی:

$ cat log1.txt | fgrep '[email protected]' | cut -d' ' -f2 | sort | cut -d'.' -f1 | uniq -c | sort -r | head
831 105
806 41
782 197
664 196
542 154
503 102
266 156
165 45
150 160
108 165

نیٹ ورکس میں سے زیادہ تر 105/8, 41/8, 196/8,197/8 AFRINIC کو مختص کیے گئے ہیں - انٹرنیٹ کے وسائل کو تقسیم کرنے والے پانچ علاقائی انٹرنیٹ رجسٹراروں میں سے ایک۔ AFRINIC پورے افریقہ میں پتہ کی جگہ تقسیم کرتا ہے۔ اور 41/8 سے مراد مکمل طور پر AFRINIC ہے۔

https://www.nic.ru/whois/?searchWord=105.0.0.0 
https://www.nic.ru/whois/?searchWord=41.0.0.0

اس طرح، مسئلہ کا جواب، حقیقت میں، لاگ میں ہی ہے.

$ cat log1.txt | fgrep -e '105.' -e '41.' -e '196.' -e '197.' -e '154.' -e '102.' | awk '{print $1}' | sort | uniq -c | sort -r | head -n 21
4209 [email protected]
3313 [email protected]
2704 [email protected]
2215 [email protected]
1774 [email protected]
1448 [email protected]
1233 [email protected]
958 [email protected]
862 [email protected]
762 [email protected]
632 [email protected]
539 [email protected]
531 [email protected]
431 [email protected]
380 [email protected]
357 [email protected]
348 [email protected]
312 [email protected]
289 [email protected]
282 [email protected]
274 [email protected]

اس مرحلے پر ہمیں سٹرنگ "LinuxBenedictTorvadst" ملتی ہے۔

درست کلید: "LinusBenedictTorvalds"۔

نتیجے میں آنے والی اسٹرنگ میں آخری 3 حروف میں درست کلید کے سلسلے میں ایک ٹائپو ہے۔ یہ اس حقیقت کی وجہ سے ہے کہ ہم نے جو نیٹ ورکس منتخب کیے ہیں وہ مکمل طور پر افریقی ممالک کے لیے وقف نہیں ہیں اور ہمارے لاگ میں IP پتوں کے ذریعے ای میلز کی تقسیم کے طریقے سے۔

افریقی ممالک کے لیے مختص کردہ سب سے بڑے نیٹ ورکس کی کافی تفصیلات کے ساتھ، ایک درست جواب حاصل کیا جا سکتا ہے:

$ cat log1.txt | fgrep -e' '105.{30..255}. -e' '41. -e' '196.{64..47}. -e' '196.{248..132}. -e' '197.{160..31}. -e' '154.{127..255}. -e' '102.{70..255}. -e' '156.{155..255}. | awk '{print $1}' | sort | uniq -c | sort -r | head -n 21
3350 [email protected]
2662 [email protected]
2105 [email protected]
1724 [email protected]
1376 [email protected]
1092 [email protected]
849 [email protected]
712 [email protected]
584 [email protected]
463 [email protected]
365 [email protected]
269 [email protected]
225 [email protected]
168 [email protected]
142 [email protected]
111 [email protected]
 96 [email protected]
 78 [email protected]
 56 [email protected]
 56 [email protected]
 40 [email protected]

مسئلہ ایک اور طریقے سے بھی حل کیا جا سکتا ہے۔
MaxMind ڈاؤن لوڈ کریں، اسے کھولیں، اور اگلے تین کمانڈز بھی ہمارا مسئلہ حل کریں۔

$ cat GeoLite2-Country-Locations-ru.csv | grep "Африка" | cut -d',' -f1 > africaIds.txt
$ grep -Ff africaIds.txt GeoLite2-Country-Blocks-IPv4.csv | cut -d',' -f1 > africaNetworks.txt
$ grepcidr -f africaNetworks.txt log1.txt | cut -d' ' -f1 | sort | uniq -c | sort -r | head -n21

کسی نہ کسی طریقے سے، ہم نے آخرکار اعدادوشمار کا حساب لگایا، اور مینیجرز کو وہ ڈیٹا مل گیا جس کی انہیں کام کرنے کی ضرورت تھی!

3. تیسرا مرحلہ

تیسرا مرحلہ پہلے سے کچھ ملتا جلتا ہے - آپ کو گرم لیمپ سروس کو بھی ٹھیک کرنے کی ضرورت ہے، لیکن سب کچھ پہلے کام کے مقابلے میں زیادہ پیچیدہ ہے۔

3.1 دلچسپ حقائق

پہلے 15 منٹ میں، تین کھلاڑیوں کو پہلی کلید ملی؛ اسٹیج کے آغاز کے 2 گھنٹے اور 20 منٹ بعد، ہمارے فاتح نے کام مکمل کیا۔

3.2 ورزش

آپ ایک ایسی کمپنی میں کام کرنے گئے تھے جہاں کمپنی کے تمام دستاویزات داخلی وکی سرور پر محفوظ ہیں۔ پچھلے سال، ایک انجینئر نے سرور کے لیے ایک موجودہ ڈسک کے علاوہ 3 نئی ڈسکوں کا آرڈر دیا، یہ دلیل دی کہ سسٹم کو خرابی برداشت کرنے کے لیے، ڈسکوں کو کسی قسم کی صفوں میں رکھنے کی ضرورت ہے۔ بدقسمتی سے، ان کی تنصیب کے چند ہفتے بعد، انجینئر چھٹیوں پر ہندوستان چلا گیا اور واپس نہیں آیا۔

سرور نے کئی سالوں تک ناکامی کے بغیر کام کیا، لیکن کچھ دن پہلے کمپنی کا نیٹ ورک ہیک ہوگیا تھا۔ ہدایات کے مطابق سیکیورٹی اسٹاف نے سرور سے ڈسکیں ہٹا کر آپ کو بھیج دیں۔ نقل و حمل کے دوران، ایک ڈسک ناقابل واپسی طور پر کھو گئی تھی۔

ہمیں ویکی کی فعالیت کو بحال کرنے کی ضرورت ہے؛ سب سے پہلے، ہم ویکی کے صفحات کے مواد میں دلچسپی رکھتے ہیں۔ متن کا ایک مخصوص ٹکڑا جو اس ویکی کے صفحات میں سے ایک پر تھا 1C سرور کا پاس ورڈ ہے اور اسے فوری طور پر کھولنے کی ضرورت ہے۔

اس کے علاوہ، ویکی کے صفحات پر یا کسی اور جگہ لاگ سرور اور ویڈیو سرویلنس سرور کے پاس ورڈ موجود تھے، جن کی بازیافت بھی ضروری ہوگی؛ ان کے بغیر واقعے کی تحقیقات ناممکن ہے۔ ہمیشہ کی طرح، ہم اس مسئلے کے فوری حل کی توقع کرتے ہیں!

3.3. حل

1. ہم اپنے پاس موجود ڈسکوں سے ایک ایک کرکے بوٹ کرنے کی کوشش کرتے ہیں اور ہر جگہ ہمیں ایک ہی پیغام ملتا ہے:

No bootable medium found! System halted 

آپ کو کسی چیز سے بوٹ کرنے کی ضرورت ہے۔ لائیو CD/DVD (ٹربل شوٹنگ -> ریسکیو) سے بوٹنگ دوبارہ مدد کرتا ہے۔ لوڈ کرتے وقت، ہم بوٹ پارٹیشن کو تلاش کرنے کی کوشش کرتے ہیں، ہم اسے نہیں ڈھونڈ سکتے، ہم شیل میں ختم ہو جاتے ہیں۔ ہم مطالعہ کرنے کی کوشش کر رہے ہیں کہ ڈسک کے ساتھ کیا اور کیسے کرنا ہے۔ معلوم ہوا کہ ان میں سے تین ہیں۔ CentOS کے 7 ویں ورژن میں اس کے لیے مزید ٹولز موجود ہیں، جہاں کمانڈز ہیں۔ blkid یا lsblk، جو ہمیں ڈسک کے بارے میں تمام معلومات دکھاتا ہے۔

ہم کیسے اور کیا کرتے ہیں:

$ ls /dev/sd*

یہ فوری طور پر عیاں ہے۔

/dev/sdb1 - ext4
/dev/sdb2 - часть lvm
/dev/sda1 и /dev/sdc1 - части рейда
/dev/sda2 и /dev/sdc2 - про них ничего не известно на текущий момент

ہم sdb1 کو ماؤنٹ کرتے ہیں، یہ واضح ہے کہ یہ CentOS 6 کا بوٹ پارٹیشن ہے۔

$ mkdir /mnt/sdb1 && mount /dev/sdb1 /mnt/sdb1

ظاہر ہے، ہم گرب سیکشن میں جاتے ہیں اور وہاں پہلی کلید تلاش کرتے ہیں - ایک غیر معمولی فائل میں جیمز191955گوسلنگ۔

2. ہم pvs اور lvs کا مطالعہ کرتے ہیں، کیونکہ ہم LVM کے ساتھ کام کرتے ہیں۔ ہم دیکھتے ہیں کہ 2 جسمانی جلدیں ہونی چاہئیں، ایک موجود نہیں ہے اور گمشدہ uid کی شکایت ہے۔ ہم دیکھتے ہیں کہ 2 منطقی جلدیں ہونی چاہئیں: روٹ اور سویپ، جبکہ جڑ جزوی طور پر ختم ہو گئی ہے (حجم کا P وصف)۔ چڑھنا ممکن نہیں ہے، جو کہ افسوس کی بات ہے! ہمیں واقعی اس کی ضرورت ہے۔

2 اور ڈسکیں ہیں، ہم ان کو دیکھتے ہیں، ان کو جمع کرتے ہیں اور نصب کرتے ہیں:

$ mdadm --examine --verbose --scan
$ mdadm --assemble --verbose --scan
$ mkdir /mnt/md127 && mount /dev/md127  /mnt/md127 

ہم دیکھتے ہیں، ہم دیکھ سکتے ہیں کہ یہ CentOS 6 کا بوٹ پارٹیشن ہے اور جو پہلے سے موجود ہے اس کا ڈپلیکیٹ ہے۔ /dev/sdb1، اور یہاں پھر وہی کلید - DennisBMacAlistairCRitchie!
آئیے دیکھتے ہیں کہ یہ کیسے جمع ہوتا ہے۔ /dev/md127.

$ mdadm --detail /dev/md127

ہم دیکھتے ہیں کہ اسے 4 ڈسکوں سے اسمبل کیا جانا چاہیے تھا، لیکن اسے دو سے اسمبل کیا گیا تھا۔ /dev/sda1 и /dev/sdc1، انہیں سسٹم میں نمبر 2 اور 4 ہونا چاہئے تھا۔ ہم اس سے فرض کرتے ہیں۔ /dev/sda2 и /dev/sdc2 آپ ایک صف بھی جمع کر سکتے ہیں۔ یہ واضح نہیں ہے کہ ان پر کوئی میٹا ڈیٹا کیوں نہیں ہے، لیکن یہ ایڈمن کے ضمیر پر ہے، جو گوا میں کہیں ہے۔ ہم فرض کرتے ہیں کہ RAID10 ہونا چاہئے، حالانکہ اختیارات موجود ہیں۔ ہم جمع کرتے ہیں:

$ mdadm --create --verbose /dev/md0 --assume-clean --level=10 --raid-devices=4 missing /dev/sda2 missing /dev/sdc2

ہم blkid، pvs، lvs کو دیکھتے ہیں۔ ہمیں پتہ چلتا ہے کہ ہم نے ایک جسمانی حجم جمع کیا ہے جس کی ہمیں پہلے کمی تھی۔

lvroot کی فوری طور پر مرمت کی گئی، ہم اسے ماؤنٹ کرتے ہیں، لیکن پہلے VG کو چالو کریں:

$ vgchange -a y
$ mkdir /mnt/lvroot && mount /dev/mapper/vg_c6m1-lv_root /mnt/lvroot 

اور سب کچھ موجود ہے، بشمول روٹ ہوم ڈائرکٹری میں کلید - /root/sweet۔

3. ہم اب بھی اپنے سرور کو بحال کرنے کی کوشش کر رہے ہیں تاکہ یہ معمول کے مطابق شروع ہو۔ ہماری طرف سے تمام منطقی جلدیں /dev/md0 (جہاں ہمیں سب کچھ ملا) اسے گھسیٹیں۔ /dev/sdb2، جہاں ابتدائی طور پر پورا سرور کام کرتا تھا۔

$ pvmove /dev/md0 /dev/sdb2
$ vgreduce vg_c6m1 /dev/md0

ہم سرور کو بند کرتے ہیں، ڈسک 1 اور 3 کو ہٹاتے ہیں، دوسری کو چھوڑ دیتے ہیں، Live CD/DVD سے ریسکیو میں بوٹ کرتے ہیں۔ بوٹ پارٹیشن تلاش کریں اور بوٹ لوڈر کو گرب میں بحال کریں:

root (hd0,0)
setup (hd0)

ہم بوٹ ڈسک کو پھاڑ دیتے ہیں اور کامیابی سے لوڈ کرتے ہیں، لیکن سائٹ کام نہیں کرتی ہے۔

4. ویب سائٹ لانچ کرنے کے لیے دو آپشنز ہیں: اپاچی کو شروع سے کنفیگر کریں یا php-fpm کے ساتھ nginx استعمال کریں جو پہلے سے کنفیگر ہو چکے ہیں:

$ /etc/init.d/nginx start
$ /etc/init.d/php-fpm start

آخر میں، آپ کو MySQL شروع کرنے کی ضرورت ہے:

$ /etc/init.d/mysqld start

یہ شروع نہیں ہوگا، اور جواب اس میں موجود ہے۔ /var/log/mysql. جیسے ہی آپ MySQL کے ساتھ مسئلہ حل کریں گے، سائٹ کام کرے گی، مرکزی صفحہ پر ایک کلید ہوگی - RichardGCCMatthewGNUstallman! اب ہمارے پاس 1C تک رسائی ہے، اور ملازمین اپنی تنخواہیں وصول کر سکیں گے۔ اور ہمیشہ کی طرح، کمپنی میں انفراسٹرکچر اور سیکیورٹی قائم کرنے کے لیے آپ کے پاس بہت زیادہ کام ہے۔

ہم ایک بار پھر ان کتابوں کی فہرست بھی شیئر کر سکتے ہیں جنہوں نے ہماری اور ہمارے شرکاء کو گیم کی تیاری میں مدد کی: linux.mail.ru/books.

ہمارے ساتھ رہنے کے لیے آپ کا شکریہ! اگلے گیمز کے اعلانات کے لیے دیکھتے رہیں!

ماخذ: www.habr.com

نیا تبصرہ شامل کریں