cPanel و WHM

رفع پر شدن فضای هاست cPanel و Inode (Disk Quota Exceeded)

پر شدن فضای هاست cPanel یعنی حجم فایل ها یا تعداد فایل ها از سهم حساب بیشتر شده و سرور اجازه نوشتن چیز تازه ای را نمی دهد. راه حل این است که با Disk Usage یا ترمینال پوشه ای را که فضا یا inode می خورد پیدا کنید و فایل های اضافه را پاک کنید.

نوشته تیم فنی پیکوهاستبه روزرسانی: ۱۰ مهر ۱۴۰۵۸ دقیقه مطالعه

اگر هنگام آپلود فایل، به روزرسانی وردپرس یا دریافت ایمیل با پیام Disk quota exceeded روبه رو شده اید، حساب شما یکی از دو سقف را پر کرده است: حجم فایل ها یا تعداد فایل ها که به آن inode می گویند. پر شدن فضای هاست cPanel معمولا از چند پوشه مشخص می آید: بکاپ ها، لاگ ها، کش و ایمیل های قدیمی. قدم اول فهمیدن این است که کدام سقف پر شده و فضا دقیقا کجا رفته است.

Disk Quota Exceeded چه معنی دارد

هر حساب cPanel دو محدودیت جدا دارد. سقف حجم (disk quota) مجموع اندازه فایل ها را کنترل می کند، چه فایل سایت باشد و چه ایمیل و بکاپ. سقف inode تعداد اقلام را می شمارد. هر فایل و هر پوشه و هر ایمیل یک inode است. یک حساب می تواند با چند فایل بزرگ حجمش را پر کند، یا با هزاران فایل کوچک مثل کش و سشن و ایمیل بدون این که حجم زیادی مصرف شود، inode اش به سقف برسد.

وقتی هر کدام پر شود، علامت ها شبیه هم اند:

  • آپلود فایل یا تصویر در وردپرس شکست می خورد.
  • ایمیل های ورودی برگشت می خورند یا دیر می رسند.
  • ساخت بکاپ یا نصب افزونه با خطا تمام می شود.
  • گاهی سایت به خاطر ناتوانی در نوشتن فایل سشن یا کش خطای 500 می دهد. این حالت در راهنمای رفع خطای 500 هم آمده است.

مقدار سقف ها را پلن هاستینگ شما تعیین می کند و عدد مشترکی برای همه وجود ندارد. مقدار پلن خودتان را در صفحه اصلی cPanel ببینید.

اول بفهمید کدام سقف پر شده

در صفحه اصلی cPanel پنل کناری یا بخش Statistics مصرف دیسک و تعداد فایل ها (File Usage یا Inodes) را نشان می دهد. نام دقیق آیتم ها به تم cPanel و نسخه آن بستگی دارد. اگر عدد حجم به سقف نزدیک است، مشکل حجم است. اگر حجم کم است ولی تعداد فایل ها به سقف رسیده، مشکل inode است و باید دنبال پوشه های پر از فایل ریز بگردید.

برای دیدن جزئیات از Files و بعد Disk Usage استفاده کنید. این ابزار پوشه ها را بر اساس حجم مرتب می کند و با کلیک روی هر پوشه به داخلش می روید. بزرگ ترین مصرف کننده معمولا همان اول فهرست است.

بررسی با ترمینال

اگر به ترمینال دسترسی دارید (SSH یا Terminal در cPanel)، این دستورها سریع تر جواب می دهند. حجم هر پوشه در مسیر فعلی را مرتب شده می بینید:

cd ~
du -sh * .[!.]* 2>/dev/null | sort -h | tail -n 15

تعداد فایل ها در هر پوشه اصلی را هم با این دستور می توانید بشمارید، که برای پیدا کردن مصرف inode است:

cd ~
for d in */ .[!.]*/; do printf "%s %s\n" "$(find "$d" 2>/dev/null | wc -l)" "$d"; done | sort -n | tail -n 10

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

مصرف کننده های رایج و پاک کردنشان

این جدول رایج ترین جاهای پنهان را به ترتیب احتمال نشان می دهد:

محلچرا پر می شودکجا پاک کنید
~/backup-*.tar.gz و بکاپ های Softaculousبکاپ دستی یا خودکار که پاک نشدهFile Manager، بعد از دانلود نسخه ای که لازم دارید
پوشه ایمیل (~/mail)پیام های قدیمی، اسپم و سطل زبالهEmail Disk Usage در بخش Email
error_log در پوشه هاخطای تکراری که فایل را بزرگ می کندحذف فایل، بعد از رفع علت خطا
wp-content/cache و کش افزونه هاهزاران فایل کوچک کشخالی کردن کش از خود افزونه
wp-content/uploadsاندازه های متعدد هر تصویربا افزونه بهینه ساز، بعد از بکاپ
پوشه .trash در File Managerفایل های پاک شده که هنوز فضا می گیرندخالی کردن Trash در File Manager
سایت یا دامنه فراموش شدهکپی قدیمی سایت یا دامنه تستبررسی دستی و حذف بعد از بکاپ

پیش از پاک کردن هر چیزی از wp-content یا پوشه ایمیل، از آن بکاپ بگیرید. فایل حذف شده در File Manager به Trash می رود و تا زمانی که Trash را خالی نکنید فضا آزاد نمی شود، ولی بعد از خالی کردن Trash برگشتی وجود ندارد. با یک دستور اشتباه rm هم همه چیز بدون Trash پاک می شود.

بکاپ ها بیشترین سهم را دارند. خود cPanel بکاپ کامل حساب را در پوشه خانه می سازد و اگر آن را دانلود کنید و پاک نکنید، فضا را همچنان می گیرد. بعد از دانلود نسخه ای که می خواهید، آن را از سرور پاک کنید. درباره نگهداری درست بکاپ و بازیابی آن می توانید راهنمای بکاپ و ریستور در cPanel را بخوانید.

ایمیل ها فضا می خورند

حجم ایمیل ها از همان سهم دیسک حساب کم می شود. برای دیدن مصرف هر ایمیل، در cPanel از بخش Email وارد Email Disk Usage شوید. در آن جا هر حساب را همراه حجمش می بینید و از همان صفحه می توانید پیام های قدیمی را پاک کنید. پوشه های Trash و Junk معمولا پر از پیام هایی هستند که کسی به آن ها نگاه نمی کند.

برای حساب هایی که دیگر استفاده نمی شوند، از Email Accounts آن ها را حذف کنید. اگر یک ایمیل را در گوشی یا Outlook با IMAP باز می کنید، پیام ها روی سرور می مانند و حذفشان از گوشی فقط وقتی فضا آزاد می کند که پوشه را هم با سرور همگام کرده باشید. اگر نمی خواهید پیام ها روی سرور بمانند، تنظیم POP3 با حذف پیام از سرور راه حل دیگری است، ولی در این حالت پیام فقط روی دستگاه شما می ماند.

کش و فایل های موقت وردپرس

افزونه های کش، فایل های ایستا را هزاران بار ذخیره می کنند. اگر inode به سقف رسیده و پوشه کش پر از فایل است، از خود افزونه گزینه Purge یا Clear Cache را بزنید. پاک کردن دستی با File Manager روی پوشه ای با ده ها هزار فایل کند است و مرورگر ممکن است زمان ندهد. در ترمینال حذف سریع تر است، به شرطی که مسیر را درست بنویسید:

find ~/public_html/wp-content/cache -type f -delete

مسیر کش به افزونه شما بستگی دارد و ممکن است wp-content/cache نباشد. پیش از اجرا مسیر را با ls ببینید. دستور find ... -delete برگشت ندارد و فقط محتوای همان پوشه را پاک می کند. اگر هر ماه این مشکل تکرار می شود، تنظیمات افزونه کش را بازبینی کنید که فایل های قدیمی را خودش حذف کند.

بیشتر وردپرس ها فایل های بکاپ و لاگ افزونه ها را هم در wp-content نگه می دارند. نام پوشه هایی مثل ai1wm-backups یا updraft را بررسی کنید. این پوشه ها اغلب چند گیگابایت بکاپ قدیمی دارند که فراموش شده اند.

سایت قدیمی، فایل نصب و آرشیو

بعد از انتقال سایت، فایل هایی مثل site.zip، backup.sql یا پوشه سایت قدیمی در public_html می مانند. این ها علاوه بر فضا گاهی خطر امنیتی هم هستند، چون با آدرس مستقیم قابل دانلود اند. در راهنمای انتقال سایت وردپرس توصیه شده فایل های میانی را بعد از پایان کار پاک کنید و همین مرحله اغلب فراموش می شود.

پر شدن فضا و خطاهای دیگر

پر شدن فضا گاهی خودش را به شکل خطاهای نامرتبط نشان می دهد. سایتی که قبلا درست کار می کرد و ناگهان صفحه سفید یا خطای دیتابیس می دهد، ممکن است فقط جایی برای نوشتن فایل موقت یا لاگ MySQL نداشته باشد. اگر همزمان با پر شدن فضا، پیام Resource Limit Is Reached هم دیدید، دو موضوع را جدا بررسی کنید: سهم دیسک یک سقف است و سهم منابع پردازشی سقفی دیگر که در راهنمای خطای 508 توضیح داده شده است.

حجم دیتابیس ها هم از همان سهم دیسک کم می شود. در cPanel از بخش Databases وارد Manage My Databases یا phpMyAdmin شوید و اندازه جدول ها را ببینید. جدول هایی مثل لاگ افزونه ها، سشن ها و ترنزینت های منقضی در وردپرس می توانند به چند صد مگابایت برسند. پاک کردن ردیف ها را فقط بعد از بکاپ و با افزونه ای انجام دهید که برایش ساخته شده است.

چطور مطمئن شویم حل شده است

  • مقدار مصرف دیسک و inode را در صفحه اصلی cPanel دوباره ببینید. گاهی تا چند دقیقه عدد به روز نمی شود.
  • یک تصویر در وردپرس آپلود کنید و مطمئن شوید بدون خطا ذخیره می شود.
  • یک ایمیل آزمایشی بفرستید و دریافت کنید.
  • اگر دوباره پر شد، همین ابزارها را یک ماه بعد دوباره اجرا کنید تا بفهمید چه چیزی با چه سرعتی رشد می کند.

اگر بعد از پاک کردن همه موارد، حساب هنوز نزدیک سقف است، دو راه می ماند. می توانید فایل های حجیم مثل ویدیوها را به سرویس ذخیره سازی جدا ببرید، یا پلن را ارتقا بدهید. برای سایت هایی که دائما رشد می کنند، سقف فایل و inode را موقع انتخاب پلن بپرسید و به عدد پلن توجه کنید.

مستندات رسمی cPanel درباره ابزارها و محدودیت های حساب در docs.cpanel.net هست. اگر روی VPS با cPanel هستید، علاوه بر سهم حساب باید سقف کل دیسک سرور را هم کنترل کنید. با دستور df -h فضای پارتیشن ها را ببینید و df -i تعداد inode آزاد را نشان می دهد. پر شدن پارتیشن / یا /home همان علایم را برای همه حساب ها ایجاد می کند، حتی اگر سهم هیچ حسابی پر نشده باشد.