لینکس کور دی ڈمپ لوکیشن سیٹ کرنا

Lynks Kwr Dy Mp Lwkyshn Sy Krna



لینکس میں 'کور ڈمپ' کیا ہے؟

جب کوئی عمل غیر متوقع طور پر ختم ہوجاتا ہے، تو یہ اکثر آپ کے سسٹم میں ایک 'کور ڈمپ' کو پیچھے چھوڑ دیتا ہے۔ اس کے ساتھ ایک متعلقہ پیغام بھی شامل ہے۔ ایک کور ڈیبگنگ ٹول کے طور پر کام کرتا ہے اور میموری کی ایک تصویر ہے جس میں ڈیبگنگ کی معلومات بھی شامل ہوتی ہے۔ اگر آپ ایسے صارف ہیں جو کسی پروگرام کو ڈیبگ نہیں کرنا چاہتے ہیں، تو آپ صرف بنیادی کو حذف کر سکتے ہیں:

$ rm لازمی

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







$ کمی -c 0

ہم مطالبہ پر بنیادی ڈمپ تیار کر سکتے ہیں (مثال کے طور پر، ڈیبگر کے ذریعے) یا ختم ہونے پر خود بخود تیار کیے جا سکتے ہیں۔ دانا پروگرام کے اچانک اخراج کے نتیجے میں کور ڈمپ شروع کرتا ہے۔ یہ اضافی کارروائیوں کے لیے کسی دوسرے پروگرام (جیسے systemd-coredump) کو بھیجا جا سکتا ہے۔



جیسا کہ عام طور پر ہوتا ہے، بہتر استحکام اور ٹربل شوٹنگ کے لیے ڈیٹا اکٹھا کرنے اور ڈیبگ ڈیٹا سے حساس معلومات کے افشا ہونے کے خطرے کے درمیان ایک تجارتی تنازع ہوتا ہے۔



ہم کیا احاطہ کریں گے؟

اس آرٹیکل میں، ہم دیکھیں گے کہ Ubuntu 20.04 OS پر کور ڈمپ کی لوکیشن کیسے سیٹ کی جائے۔ آئیے ابھی شروع کرتے ہیں۔





کور ڈمپ تیار کرنا

آئیے پہلے دیکھتے ہیں کہ ہم کور ڈمپ کیسے بنا سکتے ہیں۔ اس کے لیے ہم لینکس کِل کمانڈ استعمال کرتے ہیں۔ سب سے پہلے، ایک عمل کی PID تلاش کریں اور پھر ایک قتل سگنل بھیجیں. مثال کے طور پر، آئیے نیند کا عمل شروع کریں اور پھر اسے اس کے PID کے ساتھ ختم کریں:

$ سونا 500

$ مار ڈالو -s SIGTRAP $ ( گرفت سونا )



اب جب کہ آپ نے بنیادی ڈمپ بنانے کا طریقہ سیکھ لیا ہے، آپ اسے مندرجہ ذیل حصوں میں استعمال کر سکتے ہیں۔

وہ کہاں جاتے ہیں؟

کور ڈمپ فائل کا نام core.pid ہے اور اسے ایپلی کیشن کی ورکنگ ڈائرکٹری میں بنایا گیا ہے۔ یہاں، pid عمل کی شناخت ہے۔

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

$ کمی -c

بنیادی فائل کی حد بندی یا کٹوتی سے بچنے کے لیے، یقینی بنائیں کہ عالمی سطح پر حد 'لامحدود' پر سیٹ کی گئی ہے [1]۔ یہ مندرجہ ذیل لائن کو شامل کرکے /etc/security/limits.conf میں کیا جا سکتا ہے:

جڑ - بنیادی لامحدود

* - بنیادی لامحدود

اب، صرف لاگ آؤٹ کریں اور اپنے سیشن پر لاگو ہونے والی حدود کے لیے دوبارہ لاگ ان کریں۔

کور ڈمپ کے مقام کو حسب ضرورت بنانا

'sysctl kernel.core_pattern' کمانڈ یا '/proc/sys/kernel/core_pattern' عام طور پر اس جگہ کو سیٹ کرنے کے لیے استعمال کیا جاتا ہے جہاں کور ڈمپ جاتے ہیں۔

موجودہ بنیادی پیٹرن کی ترتیبات کو دیکھنے کے لیے درج ذیل کمانڈ درج کریں:

$ کیٹ / proc / sys / دانا / core_pattern

عام طور پر، آپ کو یہاں 'کور' کے طور پر درج ڈیفالٹ قدر ملے گی۔

کور ڈمپ لوکیشن سیٹ کرنے کے لیے '/proc/sys/kernel/core_pattern' کا استعمال

آئیے '/proc/sys/kernel/core_pattern' فائل [2] [3] کا استعمال کرتے ہوئے، عارضی طور پر کور ڈمپ کو ایک نئی جگہ پر ری ڈائریکٹ کریں، بولیں /tmp/dumps/core۔ اب، درج ذیل مراحل پر عمل کریں:

مرحلہ نمبر 1 . سب سے پہلے، بنیادی ڈمپ کو ذخیرہ کرنے کے لیے ایک ڈائرکٹری بنائیں:

$ mkdir -p / tmp / ڈمپ / کور /

مرحلہ 2 . اس ڈائریکٹری کو مطلوبہ اجازتیں دیں:

$ chmod a+x / tmp / ڈمپ / کور /

مرحلہ 3 . اب، عارضی طور پر کور ڈمپ پاتھ سیٹ کریں:

$ بازگشت '/tmp/dump/cores/core' | sudo ٹی / proc / sys / دانا / core_pattern

ایک بار پھر، عالمی سطح پر حد کو لامحدود پر سیٹ کریں۔

یہاں، ہم فائل کے نام کے ساتھ کچھ دوسری معلومات جوڑ سکتے ہیں جیسا کہ درج ذیل میں دکھایا گیا ہے۔

$ بازگشت '/tmp/dump/cores/core_%e.%p_%t' | sudo ٹی / proc / sys / دانا / core_pattern

یہاں استعمال ہونے والے ہر پیرامیٹر کی وضاحت اس طرح کی جا سکتی ہے:

% اور: کے لیے قابل عمل فائل نام

% p: کے لیے عمل آئی ڈی یا pid.

% t: کے لیے ٹائم اسٹیمپ شامل کرنا

مرحلہ 4 . اگلا، ہمیں پچھلی سیٹنگز کو مستقل طور پر لاگو کرنے کے لیے '/etc/sysctl.conf' فائل کو تبدیل کرنا ہوگا۔ اس فائل کو کھولیں:

$ sudo نینو / وغیرہ / sysctl.conf

اب، اس فائل میں درج ذیل لائن شامل کریں:

kernel.core_pattern = / tmp / ڈمپ / کور / لازمی

اس کے علاوہ، اس لائن کے بجائے، آپ اسے شامل کر سکتے ہیں:

kernel.core_pattern= '/tmp/dump/cores/core_%e.%p_%t'

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

$ ls -l / tmp / ڈمپ / کور /

کور ڈمپ لوکیشن سیٹ کرنے کے لیے 'Sysctl' کمانڈ کا استعمال

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

مرحلہ نمبر 1 . ایک نئی ڈائرکٹری بنائیں اور مطلوبہ اجازت دیں:

$ mkdir -p / tmp / mydumps

$ chmod a+rwx / tmp / mydumps

مرحلہ 2 . اب، صرف درج ذیل کمانڈ کو چلائیں:

$ sudo sysctl میں kernel.core_pattern= / tmp / mydumps / لازمی_ % اور % p_ % t

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

$ ls -l / tmp / mydumps /

Ubuntu سسٹمز پر، کور ڈمپ اکثر اپپورٹ کو بھیجے جاتے ہیں۔ ریڈ ہیٹ پر مبنی سسٹمز کے لیے، اسے خودکار بگ رپورٹنگ ٹول (ABRT) پر بھیجا جا سکتا ہے۔ شروع میں، مجھے کور ڈمپ لوکیشن کنفیگر کرنے میں دشواری کا سامنا تھا، اس لیے مجھے Ubuntu 20.04 پر اپپورٹ کو مکمل طور پر غیر فعال کرنا پڑا۔ شاید، یہ بھی Red Hat اور دیگر کے ساتھ معاملہ ہو سکتا ہے.

نتیجہ

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

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