PvP Server Kiralama & Oyun Sunucuları
0 Giriş Yap Kayıt Ol

راه حل خطای کامل دیسک در سرور لینوکس

Yazdır

چگونه خطای کامل دیسک را در سرور لینوکس حل کنیم؟

راهنمای پیدا کردن فایل‌های حجیم، تمیز کردن ایمن لاگ‌ها و آزاد کردن فضا در سرور.

یکی از رایج ترین مشکلات سرورهای لینوکس پر شدن کامل دیسک است. وقتی دیسک پر می شود، وب سایت ها نمی توانند فایل بنویسند، سرویس های پایگاه داده ممکن است از کار بیفتند، سرورهای بازی ممکن است گزارش ها را ضبط نکنند، و برخی از سرویس ها ممکن است اصلاً شروع به کار نکنند.

این خطا معمولاً با علائم زیر تشخیص داده می شود:

  • آپلود نشدن فایل ها در سرور
  • خاموش شدن یا خطای سرویس پایگاه داده
  • خطای «هیچ فضایی در دستگاه باقی نمانده» در پانل ظاهر می شود
  • سرور بازی خاموش می شود زیرا نمی تواند وارد سیستم شود.
  • 500 خطا یا صفحه خالی در وب سایت ها رخ می دهد
مهم: حذف فایل های تصادفی در صورت خطای کامل دیسک خطرناک است. در صورت حذف فایل اشتباه سیستم ممکن است سرویس ها خراب شوند. ابتدا باید مشخص شود که کدام پوشه فضا را اشغال می کند.

1. بررسی استفاده از دیسک

ابتدا بررسی کنید که کدام پارتیشن دیسک روی سرور پر است.

df -h

به خصوص اینجا استفاده از% منطقه در نظر گرفته شده است. اگر یک بخش 90٪ یا بالاتر باشد، به این معنی است که خطر شروع شده است. اگر 100٪ پر باشد، سرویس ها قادر به نوشتن فایل نیستند.

2. پوشه هایی را پیدا کنید که بیشترین فضا را اشغال می کنند

هنگامی که دیسک پر است، مشکل معمولاً لاگ ها، پشتیبان گیری یا فایل های کش است که در یک پوشه جمع شده اند. پوشه های بزرگ را از دایرکتوری ریشه شروع کنید.

du -h --max-depth=1 / 2>/dev/null | sort -h

این دستور نشان می دهد که دایرکتوری های خانه چقدر فضای اشغال می کنند. معمولا دایرکتوری های زیر بررسی می شوند:

  • /var/log - گزارش سیستم و خدمات
  • /خانه - فایل های کاربر و وب سایت
  • /پشتیبان گیری - فایل های پشتیبان قدیمی
  • /tmp - فایل های موقت
  • /var/lib/mysql - فایل های پایگاه داده MySQL/MariaDB

3. لیست فایل های بزرگ

گاهی اوقات یک فایل log می تواند تا 10 گیگابایت یا بیشتر افزایش یابد. برای یافتن فایل های حجیم می توانید از این دستور استفاده کنید:

find / -type f -size +500M -exec ls -lh {} \; 2>/dev/null

این دستور فایل های بیش از 500 مگابایت را لیست می کند. فایل های به دست آمده را به دقت بررسی کنید. به خصوص ورود، .قدیمی، .gz، .باک و فایل های پشتیبان قدیمی بررسی شوند.

رویکرد ایمن: اگر نمی دانید فایل چیست، آن را حذف نکنید. ابتدا به مسیر فایل و سرویسی که به آن متصل است نگاه کنید.

4. تمیز کردن ایمن از فایل های ورود

حذف مستقیم فایل log یک سرویس در حال اجرا گاهی اوقات نتیجه مورد انتظار را نمی دهد. زیرا سرویس می تواند همچنان فایل را باز نگه دارد. بنابراین، امن ترین روش برای تمیز کردن فایل های لاگ بزرگ، خالی کردن فایل است.

truncate -s 0 /var/log/dosya_adi.log

مثال:

truncate -s 0 /var/log/syslog
truncate -s 0 /var/log/messages
truncate -s 0 /var/log/nginx/error.log

5. Package Cache Cleaning

در سیستم‌های مبتنی بر اوبونتو و دبیان، فایل‌های کش بسته ممکن است در طول زمان فضای دیسک را اشغال کنند.

apt clean
apt autoremove -y

در سیستم‌های CentOS، AlmaLinux یا Rocky Linux:

yum clean all
dnf clean all

6. بررسی نسخه های پشتیبان قدیمی

فایل هایی که بیشترین فضا را در سرورهای هاست و بازی اشغال می کنند معمولا بک آپ های قدیمی هستند. به خصوص اگر سیستم پشتیبان گیری خودکار وجود داشته باشد، ممکن است هر روز بک آپ های جدید گرفته شود و بک آپ های قدیمی حذف نشوند.

find /backup -type f -mtime +7 -name "*.tar.gz" -ls

این دستور بک آپ های قدیمی تر از 7 روز را لیست می کند. برای حذف پس از اطمینان:

find /backup -type f -mtime +7 -name "*.tar.gz" -delete
توجه: قبل از استفاده از دستور delete، حتما بررسی کنید که کدام فایل ها با دستور listing حذف می شوند.

7. با تنظیمات Logrotate از بارگذاری مجدد جلوگیری کنید

حتی اگر دیسک تمیز شود، اگر علت آن اصلاح نشود، پس از چند روز دوباره همان مشکل پیش می آید. برای این کار باید پیکربندی logrotate بررسی شود.

nano /etc/logrotate.conf

مثال منطق لوگورات ساده:

/var/log/*.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
}

این تنظیم روزانه فایل‌های گزارش را برمی‌گرداند، آنها را به مدت 7 روز نگه می‌دارد و گزارش‌های قدیمی را فشرده می‌کند.

اشتباهات رایج

  • حذف فایل های سیستم بدون اینکه بدانیم کدام فایل است
  • حذف فایل لاگ در حال اجرا و راه اندازی مجدد سرویس
  • نگهداری بک آپ های قدیمی برای مدت نامحدود
  • به هیچ وجه تنظیمات logrotate را بررسی نمی کنید
  • تا زمانی که دیسک 100% پر نشده است، مداخله نکنید

سوالات متداول

چرا سرور با پر شدن دیسک خطا می دهد؟
زیرا سرویس ها نمی توانند گزارش ها، کش ها، فایل های موقت یا پایگاه داده بنویسند. هنگامی که عملیات نوشتن با شکست مواجه می شود، ممکن است سرویس ها خاموش شوند.

بهتر است فایل لاگ را پاک کنیم یا خالی کنیم؟
به جای حذف کامل فایل لاگ در سرویس های در حال اجرا کوتاه کردن با استفاده از آن تخلیه امن تر است.

من دیسک را تمیز کردم اما فضا آزاد نشد، چرا؟
ممکن است فایل حذف شده همچنان توسط یک سرویس در حال اجرا باز نگه داشته شود. ممکن است نیاز به راه اندازی مجدد سرویس مربوطه باشد.

توصیه های عملکرد و امنیت

  • استفاده از دیسک را به طور منظم نظارت کنید.
  • پشتیبان‌گیری‌ها را روی یک دیسک جداگانه یا منطقه پشتیبان‌گیری از راه دور ذخیره کنید.
  • بدون استفاده از logrotate یک سرویس را برای مدت طولانی در حال اجرا رها نکنید.
  • هنگامی که دیسک به سطح 85٪ رسید، اقدامات احتیاطی را انجام دهید.
  • گزارش های اشکال زدایی را دائماً در سرورهای بازی باز نگذارید.

این مقاله به طور ویژه برای PvPServer تهیه شده است.

Bu cevap yeterince yardımcı oldu mu?

Oyla

overlay spinner