جگہ کا ختم ہو جانا وہ سب سے عام وجہ ہے جس سے کوئی سرور بغیر کسی بدنیتی کے کام کرنا چھوڑ دیتا ہے۔ سائٹ 500 لوٹاتی ہے، ڈیٹابیس نہیں لکھتا، میل باہر نہیں جاتی — اور اسی دوران df -h کئی خالی گیگابائٹ بتاتا ہے۔ آئیے وہ تینوں صورتیں دیکھتے ہیں جن میں ایسا ہوتا ہے، اور وہ بھی جو SMART کے بارے میں جاننے کے قابل ہے۔
پہلی صورت: inodes ختم ہو گئے
فائل سسٹم دو محدود وسائل رکھتا ہے: مواد کے لیے جگہ اور فائلوں کے بارے میں اندراج۔ اور دوسرا پہلے سے آزادانہ ختم ہوتا ہے:
df -h
df -i
اگر دوسری کمانڈ میں IUse% سو ہے تو مسئلہ inodes کا ہے۔ جگہ ہے، مگر ایک بھی فائل نہیں بنائی جا سکتی، خالی بھی نہیں۔
اور مجرم ہمیشہ وہی ہوتے ہیں: لاکھوں ننھی فائلیں۔ /var/lib/php/sessions میں PHP کے سیشن جن کی کچرا صفائی ٹوٹ گئی۔ کسی ایپلیکیشن کا کیش جو کبھی صاف نہیں ہوتا۔ اٹکی ہوئی میل کی قطار۔ چھوٹی تصاویر کی ڈائریکٹری۔ انہیں یوں ڈھونڈا جا سکتا ہے:
sudo find / -xdev -type f -printf '%h\n' 2>/dev/null | sort | uniq -c | sort -rn | head -20
یہ کمانڈ سب سے زیادہ فائلوں والی ڈائریکٹریاں دکھاتی ہے۔ بڑے نظام پر یہ منٹوں چلتی ہے — اور یہ معمول ہے۔
دوسری صورت: فائل مٹ گئی اور جگہ واپس نہ آئی
اس سے بھی زیادہ چالاک صورتِ حال۔ کسی نے rm سے پھولا ہوا لاگ ہٹا دیا، مگر جو عمل اس میں لکھ رہا ہے وہ اسے ابھی کھلا رکھے ہوئے ہے۔ فائل اب ڈائریکٹری میں نہیں، جگہ اب بھی مصروف ہے، اور اسی طرح رہے گی جب تک وہ عمل دوبارہ نہ چلایا جائے۔
sudo lsof +L1
یہ کمانڈ وہ فائلیں دکھاتی ہے جن کے فائل سسٹم میں صفر ربط ہیں مگر کوئی عمل انہیں تھامے ہوئے ہے۔ علاج اُس عمل کو دوبارہ چلانا یا نرمی سے دوبارہ لوڈ کرنا ہے، نہ کہ «گیگابائٹ کہاں گئے» کا شکار۔
اسی سے اصول نکلتا ہے: پھولے ہوئے لاگ کو مٹایا نہیں بلکہ چھوٹا کیا جاتا ہے، تاکہ کھلا ڈسکرپٹر قابلِ استعمال رہے:
sudo truncate -s 0 /var/log/huge.log
اور فوراً بعد گردش مرتب کریں — ورنہ یہ سب ایک ہفتے میں دہرایا جائے گا۔
تیسری صورت: لاگ کھا گئے
جگہ ٹھیک ٹھیک کہاں گئی، یہ درجہ بہ درجہ نیچے اترنے سے نظر آتا ہے:
sudo du -x -h --max-depth=1 / | sort -h
sudo du -x -h --max-depth=1 /var | sort -h
-x جھنڈا دوسرے فائل سسٹموں میں بھٹکنے سے روکتا ہے؛ اس کے بغیر گنتی /proc اور نیٹ ورک ماؤنٹ میں گھس جاتی ہے۔ اور یہ سب ncdu میں زیادہ آسان ہے، اگر وہ دستیاب ہو۔
معمول کے پیٹو:
- journald۔ ایک کمانڈ فیصلہ کر دیتی ہے:
journalctl --disk-usage۔ اسے/etc/systemd/journald.confمیںSystemMaxUse=500Mسطر سے محدود کیا جاتا ہے اورjournalctl --vacuum-size=200Mسے ایک بار صاف؛ - سیکیورٹی اوزاروں کے لاگ۔ Suricata طے شدہ ترتیب کے ساتھ تیس قسم کے واقعات لکھتی ہے اور اپنے لیے کوئی گردش مرتب نہیں کرتی — ایک حقیقی سرور پر اس نے دو دن میں 15 GB بنا دیے۔ یہی audit.log اور nginx کے ڈی بگ لاگ کے ساتھ ہوتا ہے؛
- بیک اپ جو اسی ڈسک پر لکھے جاتے ہیں اور کبھی مٹائے نہیں جاتے؛
- apt کا کیش —
apt cleanکبھی کبھار دو ایک گیگابائٹ لوٹا دیتا ہے۔
/boot کے بارے میں چند لفظ
ایک چھوٹا پارٹیشن جو پرانے کرنلوں سے بھر جاتا ہے۔ یہ خود سائٹ نہیں گراتا، مگر تازہ کاریوں کو مکمل طور پر روک دیتا ہے: نیا کرنل نصب نہیں ہوگا، اور اس کے پیچھے پیکجوں کی پوری قطار اٹک جائے گی۔ apt autoremove --purge سے علاج ہوتا ہے، اور خودکار تازہ کاری کی ترتیبات میں غیر استعمال شدہ کرنلوں کی خودکار صفائی فعال کر کے اس سے بچا جاتا ہے۔
SMART: کون سی خصوصیات اہم ہیں
پہلے ایک وضاحت: ورچوئل سرور پر SMART عموماً دستیاب نہیں ہوتا — ڈسک ورچوئل ہے اور اس کے نیچے کی طبیعی ڈسک آپ کو نظر نہیں آتی۔ یہ خرابی نہیں، بس ڈیٹا ہی نہیں۔ آگے کی ہر بات مخصوص سرورز اور آپ کے اپنے ہارڈویئر سے متعلق ہے۔
sudo smartctl -a /dev/sda
سطر SMART overall-health self-assessment test result: PASSED مطمئن ہونے کی وجہ نہیں: یہ عملاً ڈرائیو کے مرنے تک سبز رہتی ہے۔ دیکھنے کے قابل چیز مخصوص شمار کنندے ہیں:
- 5، Reallocated_Sector_Ct — دوبارہ تفویض شدہ سیکٹر۔ غیر صفر قدر کا مطلب ہے کہ ڈرائیو پہلے ہی بگڑ رہی ہے؛ اور وقت کے ساتھ بڑھنا یعنی بلا تاخیر بدلیں؛
- 197، Current_Pending_Sector — وہ سیکٹر جو پڑھے نہیں جاتے اور فیصلے کے منتظر ہیں۔ سب سے تشویشناک: عموماً اس کا مطلب ہے کہ ڈیٹا کا کچھ حصہ پہلے ہی ناقابلِ بحالی ہے؛
- 198، Offline_Uncorrectable — وہی بات، جانچ سے تصدیق شدہ؛
- SSD: Percentage Used / Media_Wearout_Indicator — استعمال ہو چکی لکھنے کی صلاحیت۔ قابلِ پیش گوئی عدد، اور اسی کے حساب سے تبدیلی کی منصوبہ بندی ہوتی ہے۔
جبکہ درجہ حرارت اور کام کے گھنٹے بذاتِ خود کچھ نہیں کہتے: پانچ سال چلنے اور صفر خرابی شمار کنندوں والی ڈرائیو خصوصیت 197 میں 1 رکھنے والی نئی ڈرائیو سے زیادہ قابلِ اعتماد ہے۔
نگرانی کا مقصد
اوپر کی ہر بات اُس چیز پر ردعمل ہے جو ہو چکی۔ حالانکہ بھرتی ہوئی ڈسک اور SSD کی گھِسائی دونوں سست اور مکمل طور پر قابلِ پیش گوئی عمل ہیں: دو ہفتوں کا بھرنے کا گراف جگہ ختم ہونے کی تاریخ اُس کے ہونے سے بہت پہلے دکھا دیتا ہے۔ اور «سائٹ رات تین بجے سے بند ہے» اور «جمعرات کو لاگ صاف کرنے ہیں» کے درمیان فرق صرف اتنا ہے کہ عدد آپ کی آنکھوں کے سامنے ہو۔ یہ سب یکجا ہو کر کیسا لگتا ہے، نیچے ڈیمو صفحہ دکھاتا ہے۔