پر شدن فضای هاست و دیسک در سی پنل (Cpanel) و دایرکت ادمین (DirectAdmin)

یکی از مشکلات متداولی که ادمین های سایت و سرورها با آن رو به رو هستند، پر شدن فضای هاست یا دیسک سرور یا تمام شدن فضای ذخیره سازی هاست است. به خصوص اگر سایت وردپرسی داشته باشید احتمالا بیشتر در معرض این مشکل قرار گرفته اید. در چنین شرایطی برای شما این سوال پیش می آید که چرا وقتی مدت هاست فایل با حجم زیاد بارگذاری نکرده اید با این مشکل رو به رو می شوید. این مسئله می تواند به اختلال در عملکرد سرور، کاهش سرعت بارگذاری سایت و حتی از دسترس خارج شدن کامل سایت منجر شود. در این مقاله اسپاد سرور به صورت جامع به بررسی دلایل پر شدن فضای هاست و دیسک و راهکارهای عملی برای آزاد کردن فضای دیسک سرور می پردازیم.
چرا دیسک سرور پر می شود؟ دلایل اصلی پر شدن فضای هاست
قبل از حل مشکل، باید دلایل اصلی پر شدن فضای سرور مجازی را بشناسیم در ادامه دلایل پر شدن هاست سایت را بررسی می کنیم:
۱. ذخیره بیش از حد نسخه های پشتیبان از عوامل پر شدن فضای هاست
بکاپ گیری منظم ضروری است، اما ذخیره این فایل ها در فضای هاست و عدم حذف نسخه های قدیمی، باعث اشغال حجم زیادی می شود.
راهکار: انتقال بکاپ ها به سرویس های ابری (مانند Google Drive یا Dropbox) و حذف نسخه های قدیمی از هاست.
۲. تولید انبوه فایل های کش و لاگ و پر شدن فضای هاست
افزونه های کش مانند LiteSpeed و فایل های گزارش خطا (log) در صورت عدم پاک سازی، فضای قابل توجهی را مصرف می کنند.
راهکار: استفاده از ابزارهایی مانند WP Rocket یا WP-Optimize برای حذف دوره ای کش و لاگ ها.
۳. تصاویر و فایل های حجیم بدون بهینه سازی
آپلود تصاویر و ویدیوها با حجم بالا، بدون فشرده سازی، یکی از دلایل اصلی پر شدن هاست است.
راهکار: استفاده از افزونه هایی مانند Smush یا Imagify برای کاهش حجم تصاویر و بارگذاری ویدیوها در پلتفرم هایی مثل YouTube یا Aparat.
۴. افزونه ها و قالب های غیرضروری
نصب افزونه ها و قالب هایی که استفاده نمی شوند، اما همچنان در هاست باقی مانده اند، فضای غیرضروری اشغال می کند.
راهکار: حذف افزونه ها و قالب های بلااستفاده و بررسی حجم اشغالی آن ها از طریق File Manager یا ابزارهای بهینه سازی.
۵. رشد بیش ازحد دیتابیس وردپرس
داده های زائد مانند پست های موقت، دیدگاه های اسپم و جداول مربوط به افزونه های حذف شده باعث افزایش حجم دیتابیس می شود.
راهکار: بهینه سازی دیتابیس با WP-Optimize یا Advanced Database Cleaner و بررسی دستی از طریق phpMyAdmin.
۶. تجمع ایمیل ها در Webmail
ذخیره تعداد زیادی ایمیل دریافتی، ارسالی و اسپم در سرور، فضای هاست را اشغال می کند.
راهکار: حذف ایمیل های قدیمی، استفاده از سرویس های ایمیل خارجی و تنظیم کلاینت هایی مثل Outlook یا Gmail برای دریافت ایمیل ها.
۷. باقی ماندن فایل های موقت و قدیمی و پر شدن فضای هاست
فایل های موقت هاست وردپرس، نسخه های قدیمی سایت و فایل های متعلق به افزونه های حذف شده اغلب بدون استفاده باقی می مانند.
راهکار: بررسی دوره ای با File Manager یا FTP و حذف فایل های زائد با استفاده از ابزارهای Disk Usage در کنترل پنل.
اگر نیاز به راهنمایی برای خرید هاست اقتصادی و دامنه و سرور مجازی دارید، متخصصان با تجربه اسپاد سرور آماده خدمت به شما هستند. برای تماس با ما، روی “تماس با اسپاد سرور” کلیک کنید.
نحوه بررسی وضعیت مصرف فضای هاست
- در cPanel: از بخش Disk Usage می توان جزئیات مصرف فضا را مشاهده کرد. همچنین File Manager امکان بررسی و حذف فایل های حجیم را فراهم می کند.
- در DirectAdmin: گزینه Disk Space Usage در بخش System Info & Files اطلاعات کامل در مورد فضای مصرفی توسط فایل ها، ایمیل ها و دیتابیس ها ارائه می دهد.
- با افزونه های وردپرسی: ابزارهایی مانند WP-Optimize، Media Cleaner و Advanced Database Cleaner امکان آنالیز و پاک سازی منابع را فراهم می کنند.
تشخیص وضعیت فضای دیسک
برای بررسی وضعیت فضای سرور از دستورات زیر در محیط لینوکس استفاده کنید:
df -h
برای مشاهده فضای اشغال شده توسط هر دایرکتوری:
du -sh *
راهکارهای آزادسازی فضای دیسک سرور
برای رفع مشکل پر شدن دیسک سرور، می توانید از راهکارهای زیر استفاده کنید. این راه های می تواند برای برطرف سازی پر شدن فضای هاست کمک کننده باشند.
- حذف فایل های لاگ قدیمی
با استفاده از ابزار logrotate یا حذف دستی:
sudo find /var/log -type f -name ‘*.log’ -delete
- پاک کردن بکاپ های قدیمی
شناسایی و حذف بکاپ های منقضی شده:
sudo find /backup -type f -mtime +30 -delete
- پاک سازی کش و فایل های موقت
مثال برای پاک کردن کش آپاچی:
sudo rm -rf /var/cache/apache2/*
- محدود کردن آپلود فایل
در صورت نیاز، محدودیت حجمی برای آپلود فایل ها در تنظیمات سرور تعیین کنید.
- حذف نرم افزارهای غیرضروری
نرم افزارهایی را که دیگر استفاده نمی کنید، حذف کنید:
sudo apt remove package-name

پر شدن فضای هاست
پاک سازی خودکار کش LiteSpeed در وردپرس با Cron Job (برای cPanel و DirectAdmin)
اگر سایت وردپرسی شما روی هاست LiteSpeed اجرا می شه و متوجه شدید فضای هاست به طور ناگهانی پر شده، احتمالا مشکل از پوشه ی کش LiteSpeed هست. در این مقاله، به شما آموزش می دیم چطور با تنظیم یک Cron Job ساده، این کش رو هر ۸ ساعت به صورت خودکار پاک سازی کنید و از پر شدن فضای هاست جلوگیری کنید.
مشکل چیست؟
افزونه LiteSpeed Cache فایل های کش شده ی صفحات سایت رو در مسیر زیر ذخیره می کند:
wp-content/litespeed/cache
این فایل ها به مرور زمان زیاد می شوند و ممکن است چند گیگابایت فضا اشغال کند، مخصوصا اگر سایت پربازدید باشد یا کش به صورت دستی پاک سازی نشود.
راه حل پر شدن فضای هاست: پاک کردن کش با Cron Job
شما می توانید یک Cron Job تنظیم کنید که هر ۸ ساعت یک بار این پوشه را خالی کند.
آموزش تنظیم کرون جاب برای cPanel جهت جلوگیری از پر شدن فضای هاست
مراحل:
- وارد سی پنل (cPanel) هاست خود شوید.
- به بخش Cron Jobs بروید.
- در قسمت Add New Cron Job:
- از منوی کشویی، گزینه:
- Once per 8 hours
یا به صورت دستی این مقدار رو وارد کنید:
۰ */۸ * * *
در بخش Command (دستور اجرا)، این خط رو وارد کنید:
rm -rf /home/USERNAME/public_html/wp-content/litespeed/cache/*
حتما USERNAME رو با نام کاربری سی پنل خودتان جایگزین کنید.
آموزش تنظیم کرون جاب برای DirectAdmin جهت جلوگیری از پر شدن فضای هاست (ساخت cron job در دایرکت ادمین)
مراحل ایجاد کرون جاب دایرکتادمین:
- وارد پنل هاست دایرکت ادمین DirectAdmin شوید.
- بروید به بخش Advanced Features > Cron Jobs.
- در قسمت ایجاد کرون جاب جدید:
Minute: 0
Hour: */8
Day of Month: *
Month: *
Day of Week: *
Command (دستور):
rm -rf /home/USERNAME/domains/YOURDOMAIN.com/public_html/wp-content/litespeed/cache/*
USERNAME و YOURDOMAIN.com رو با اطلاعات خودتان جایگزین کنید.
بررسی لاگها در دایرکت ادمین
بررسی لاگها در دایرکت ادمین (DirectAdmin) یکی از مهم ترین اقدامات مدیریتی برای شناسایی مشکلات زیرساختی است؛ به ویژه زمانی که سیستم با پر شدن فضای دیسک و هارد مواجه می شود. یکی از منابع رایج ایجاد لاگ های حجیم که به راحتی می تواند منجر به اشغال شدید فضای دیسک شود، اجرای مداوم و نادرست کرون جاب ها (Cron Jobs) است.
نقش کرون جاب ها در پر شدن فضای دیسک و هارد
کرون جاب ها وظایفی زمان بندی شده هستند که می توانند اسکریپت هایی مانند بکاپ گیری، به روزرسانی، گزارش گیری یا اسکن های امنیتی را در بازه های مشخص اجرا کنند. اگر این اسکریپت ها به درستی نوشته نشده باشند یا لاگ آن ها بدون محدودیت در مسیرهای مشخص ذخیره شود، در مدت کوتاهی باعث پر شدن فضای دیسک و هارد خواهند شد.
مسیر بررسی لاگ های مربوط به کرون جاب در دایرکت ادمین
برای بررسی لاگ های مرتبط با کرون جاب در DirectAdmin، مسیرهای زیر را دنبال کنید:
لاگ اجرای عمومی کرون در سیستم (برای همه کاربران):
/var/log/cron
این فایل شامل اطلاعات کلی درباره زمان اجرای کرون جاب ها در سطح سیستم است. با دستور زیر می توانید بررسی کنید:
cat /var/log/cron | grep CRON
لاگ خروجی کرون جاب های خاص کاربر در دایرکت ادمین:
اگر کرون جابی از طریق رابط گرافیکی دایرکت ادمین تنظیم شده باشد و خروجی آن به فایل خاصی هدایت نشده باشد، معمولاً ایمیلی ارسال می شود یا در مسیرهای زیر لاگ گیری انجام می شود:
- اگر خروجی به فایلی هدایت شده باشد (مثلاً >/home/username/cron.log 2>&1) باید همان فایل بررسی شود.
- اگر نه، ممکن است لاگ ها در فولدر Maildir کاربر ذخیره شده باشند که بررسی آن ها از طریق Webmail یا مسیر:
- /home/username/Maildir
قابل انجام است.
پیدا کردن کرون جاب های فعال کاربران دایرکت ادمین:
در این مسیر می توانید فایل های زمان بندی شده کاربران را ببینید:
/var/spool/cron/
هر فایل در این مسیر مربوط به یک کاربر است. مثلاً برای کاربر ali:
cat /var/spool/cron/ali
چطور از پر شدن فضای دیسک توسط کرون جاب جلوگیری کنیم؟
خروجی هر کرون جاب را کنترل و مدیریت کنید.
در انتهای هر دستور کرون جاب، خروجی را به /dev/null هدایت کنید یا در یک فایل محدود ذخیره کنید:
* * * * * /path/to/script.sh > /dev/null 2>&1
فایل های لاگ قدیمی را به صورت دوره ای پاک کنید.
از یک اسکریپت پاک سازی استفاده کنید تا لاگ هایی که بیشتر از چند روز عمر دارند، حذف شوند:
find /home/username/logs -type f -mtime +7 -delete
فعال سازی مانیتورینگ فضای دیسک در دایرکت ادمین یا سیستم:
با ابزارهایی مثل ncdu یا du -sh, می توان فولدرهای پرحجم را شناسایی کرد.
نکات امنیتی کرون جاب
اگر مطمئن نیستید مسیر دقیق کش کجاست، ابتدا با این دستور فقط محتویات پوشه رو بررسی کنید (و چیزی پاک نکنید):
ls -lh /home/USERNAME/public_html/wp-content/litespeed/cache/
با تنظیم این Cron Job ساده:
- کش LiteSpeed به صورت منظم پاک سازی می شود.
- فضای هاست آزاد باقی می ماند.
- سرعت و عملکرد سایت حفظ می شود.
- نیازی به پاک سازی دستی نیست.

پر شدن فضای هاست
اگر سوالی در مورد مسیر دقیق کش یا نحوه اجرای Cron Job دارید، از پشتیبانی اسپاد سرور بپرسید.
پیشگیری از مشکل پر شدن فضای هاست یا دیسک سرور
برای جلوگیری از تکرار این مشکل، موارد زیر را رعایت کنید:
- تنظیم بکاپ گیری منظم با سیاست مشخص برای حذف خودکار بکاپ های قدیمی
- تنظیم logrotate برای مدیریت فایل های لاگ
- نظارت مداوم بر مصرف فضای دیسک با ابزارهای مانیتورینگ
- محدودسازی منابع مصرفی کاربران و وب سایت ها
ابزارهای مفید برای مدیریت فضای دیسک
- ncdu: ابزار گرافیکی در ترمینال برای مشاهده و مدیریت حجم فایل ها
نصب ncdu:
sudo apt install ncdu
ncdu /
- Baobab (Disk Usage Analyzer): ابزار گرافیکی برای نمایش بصری مصرف فضای دیسک
نصب:
sudo apt install baobab
بارگذاری دیتابیس حجیم در ابر
بارگذاری دیتابیس حجیم در ابر به معنای انتقال یا ایجاد پایگاه های داده با حجم بالا (ده ها تا صدها گیگابایت یا بیشتر) روی زیرساخت های ابری مانند VPS، سرورهای اختصاصی ابری یا سرویس های مدیریت شده ای مثل Amazon RDS، Google Cloud SQL یا Azure Database است. این عملیات از نظر فنی چالش های زیادی به همراه دارد، به ویژه وقتی که بحث محدودیت منابع مانند فضای ذخیره سازی مطرح باشد.
یکی از مهم ترین ریسک هایی که در هنگام بارگذاری دیتابیس حجیم در ابر باید مدنظر قرار گیرد، پر شدن فضای هاست و دیسک است. چرا که برخلاف سیستم های لوکال یا دیتاسنترهای اختصاصی، منابع در محیط ابری معمولا محدود، قابل صورتحساب، و در برخی سرویس ها غیرقابل ارتقا در لحظه هستند.
وقتی دیتابیس حجیمی در حال بارگذاری است، موارد زیر به صورت هم زمان به مصرف دیسک دامن می زنند:
- فایل های اصلی دیتابیس (data files)
- فایل های لاگ تراکنش (transaction logs)
- فایل های temp و cache که در اجرای کوئری های سنگین ایجاد می شوند
- بکاپ های خودکار یا دستی
- جداول ایندکس سنگین که گاهی از خود داده اصلی بزرگ تر می شوند
بارگذاری Data base حجیم در ابر
در فرآیند بارگذاری دیتابیس حجیم در ابر، اگر این منابع به درستی مدیریت نشوند، خیلی سریع با پر شدن فضای هاست و دیسک مواجه می شویم. این اتفاق باعث می شود:
- پردازش کوئری ها به خطا بخورد یا متوقف شود (MySQL server has gone away، disk full error و…)
- عملیات نوشتن و بروزرسانی داده ها از کار بیفتد
- حتی دسترسی به خود سرویس دیتابیس نیز قطع شود
راهکارهای فنی جهت جلوگیری از پر شدن فضای هاست و دیسک
استفاده از Volume های قابل ارتقا (Elastic Storage):
هنگام استفاده از سرورهای ابری، دیسک ها را به صورت volume جداگانه پیکربندی کنید تا در صورت نیاز، بدون downtime ارتقا یابند.
مانیتورینگ دقیق I/O و فضای دیسک:
ابزارهایی مانند Netdata، Prometheus + Grafana یا سرویس های مانیتورینگ ابری می توانند رشد فضای مصرفی را در زمان واقعی نمایش دهند و هشدار بدهند قبل از اینکه بارگذاری دیتابیس حجیم در ابر به پر شدن فضای هاست و دیسک منجر شود.
فعال سازی Auto Vacuum و پاک سازی فایل های موقتی:
مخصوصا در PostgreSQL، فعال بودن Auto Vacuum به بهینه سازی فضا کمک زیادی می کند. همچنین باید tmp و binlog ها در MySQL یا فایل های .ibd در MariaDB کنترل شوند.
تقسیم دیتابیس به shard یا archive:
اگر حجم دیتابیس بیش ازحد بزرگ است، می توان بخشی از اطلاعات قدیمی را جدا کرده و به دیتابیس های دیگر یا فضای سرد منتقل کرد.
فشرده سازی داده ها در زمان انتقال و نگهداری:
هنگام بارگذاری دیتابیس حجیم در ابر، استفاده از dumpهای فشرده شده (mysqldump –compress) و بازیابی مرحله ای کمک می کند تا فشار روی دیسک و I/O کاهش یابد.
بارگذاری دیتابیس حجیم در ابر نباید بدون طراحی دقیق، تحلیل مصرف منابع و درک رفتار پایگاه داده انجام شود. عدم توجه به این موارد می تواند در مدت کوتاهی باعث پر شدن فضای هاست و دیسک شود که علاوه بر کاهش عملکرد، حتی ممکن است منجر به از بین رفتن داده ها یا downtime جدی شود.
نتیجه گیری
پر شدن دیسک سرور مسئله ای است که در صورت نادیده گرفتن آن می تواند به مشکلات جدی و هزینه های اضافی منجر شود. با شناسایی علت های اصلی این مسئله و اجرای راهکارهای کاربردی برای مدیریت و آزادسازی فضای دیسک، می توانید از بروز این مشکل پیشگیری کرده و عملکرد سرور و وب سایت های خود را بهبود بخشید.