القرص ممتلئ: استجابة الطوارئ
خطوات الاستجابة الطارئة عند امتلاء مساحة القرص: العثور على الملفات الكبيرة باستخدام du و ncdu، تنظيف السجلات، فحص inode وتكوين التنظيف التلقائي.
جدول المحتويات
مقدمة
امتلاء مساحة القرص يمكن أن يسبب تعطل الخدمات وأخطاء قاعدة البيانات وعدم استقرار النظام. في هذا الدليل، سنتناول خطوات الاستجابة الطارئة والحلول الدائمة عند امتلاء القرص.
الكشف الطارئ
فحص استخدام القرص
# استخدام القرص العام
df -h
# استخدام inode
df -i
# مع أنواع أنظمة الملفات
df -Th
عندما يتجاوز استخدام القرص 95%، يلزم اتخاذ إجراء فوري. عند 100%، تبدأ الخدمات بالتعطل.
العثور على الملفات والمجلدات الكبيرة
التحليل بأمر du
# أكبر المجلدات في الجذر
sudo du -sh /* 2>/dev/null | sort -rh | head -20
# تحليل مجلد /var
sudo du -sh /var/* 2>/dev/null | sort -rh | head -10
# تحليل /var/log
sudo du -sh /var/log/* 2>/dev/null | sort -rh | head -10
# البحث عن ملفات أكبر من 100 ميجابايت
sudo find / -type f -size +100M -exec ls -lh {} \; 2>/dev/null | sort -k5 -rh | head -20
التحليل التفاعلي مع ncdu
# تثبيت ncdu
sudo apt install ncdu -y
# تحليل المجلد الجذر
sudo ncdu /
خطوات التنظيف الطارئة
1. تنظيف ملفات السجل
# فحص حجم سجل systemd
journalctl --disk-usage
# تحديد السجل بـ 100 ميجابايت
sudo journalctl --vacuum-size=100M
# حذف السجلات الأقدم من 7 أيام
sudo journalctl --vacuum-time=7d
# اقتطاع ملفات السجل الكبيرة
sudo truncate -s 0 /var/log/syslog
sudo truncate -s 0 /var/log/kern.log
# حذف السجلات المدورة القديمة
sudo find /var/log -name '*.gz' -delete
sudo find /var/log -name '*.1' -delete
أمر truncate يعيد تعيين حجم الملف إلى صفر دون حذفه. لا يتطلب إعادة تشغيل الخدمات.
2. تنظيف ذاكرة APT المؤقتة
# فحص حجم ذاكرة APT المؤقتة
sudo du -sh /var/cache/apt/archives/
# تنظيف ملفات الحزم المحملة
sudo apt clean
# تنظيف إصدارات الحزم القديمة
sudo apt autoclean
# إزالة التبعيات غير المستخدمة
sudo apt autoremove -y
3. تنظيف النوى القديمة
# إصدار النواة الحالي
uname -r
# قائمة النوى المثبتة
dpkg --list | grep linux-image
# إزالة النوى القديمة
sudo apt autoremove --purge -y
4. تنظيف مجلد tmp
# فحص حجم /tmp
sudo du -sh /tmp
# حذف ملفات tmp الأقدم من 7 أيام
sudo find /tmp -type f -atime +7 -delete
5. البحث عن الملفات المحذوفة لكن المفتوحة
# البحث عن الملفات المحذوفة لكن المفتوحة
sudo lsof +L1 | grep deleted
# إعادة تشغيل العملية المرتبطة
sudo systemctl restart اسم_الخدمة
خاصة عند حذف ملفات السجل، لن يتم تحرير مساحة القرص دون إعادة تشغيل الخدمة المرتبطة.
نفاد inode
# فحص استخدام inode
df -i
# البحث عن المجلدات التي تحتوي على أكثر الملفات
sudo find / -xdev -printf '%h\n' | sort | uniq -c | sort -rn | head -20
تكوين تدوير السجلات التلقائي
# /etc/logrotate.d/custom-logs
/var/log/myapp/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
}
حد حجم السجل
# /etc/systemd/journald.conf
[Journal]
SystemMaxUse=200M
SystemMaxFileSize=50M
MaxRetentionSec=7day
سكريبت مراقبة القرص
#!/bin/bash
THRESHOLD=90
PARTITION="/"
USAGE=$(df -h $PARTITION | awk 'NR==2 {print $5}' | tr -d '%')
if [ "$USAGE" -gt "$THRESHOLD" ]; then
echo "تحذير: استخدام القرص $USAGE% ($PARTITION)"
du -sh $PARTITION* 2>/dev/null | sort -rh | head -10
fi
الخلاصة
امتلاء القرص مشكلة حرجة تتطلب إجراءً فوريًا. ملفات السجل وذاكرة APT المؤقتة والنوى القديمة هي أكثر مستهلكي المساحة شيوعًا. بتكوين تدوير السجلات المنتظم ومراقبة القرص، يمكنك منع تكرار هذه المشكلة.
مقالات ذات صلة
مشكلة اتصال SSH: لا يمكن الاتصال بالخادم — الحل
دليل حل مشاكل اتصال SSH: قواعد جدار حماية Path.net، Default Block، إنشاء قاعدة تصفية لمنفذ SSH وخطوات استكشاف الأخطاء وإصلاحها.
مشكلة اتصال RDP: لا يمكن الاتصال بـ Windows Server
دليل حل مشاكل اتصال RDP: قواعد جدار حماية Path.net، Default Block، إنشاء قاعدة تصفية لمنفذ RDP وخطوات استكشاف الأخطاء وإصلاحها.
كيفية إجراء اختبار MTR وإرسال النتائج للدعم
دليل اختبار الشبكة باستخدام WinMTR وLinux MTR، إنشاء قاعدة فلترة ICMP وإرسال النتائج لفريق الدعم. تشخيص فقدان الحزم والتأخير في الشبكة.