به جرئت میشه گفت cPanel کاربرپسندترین و قدرتمندترین کنترلپنل میزبانی وب هست. اما گاها اشکالاتی به این کنترلپنل ارزنده وارد میشه، مثلا حجم دیسک مصرفی اکانتها به درستی نمایش داده نمیشه. خب خود سیپنل برای رفع این اشکالات عموما اسکریپتهایی ارائه داده. اسکریپتی که برای رفع اشکالات مصرف دیسک اکانتها توی سیپنل تعریف شده با دستور زیر اجرا میشه.
/scripts/fixquotas
امروز که قصد داشتم با اجرای این اسکریپت مشکلات حجم اکانتهای یکی از سرورها رو حل کنم، معالاسف در اقدامی غیرمنتظره با صحنه زیر مواجه شدم.
Installing Default Quota Databases......Done journaled quota support: kernel supports, user space tools supports (available) checking out /backup checking out /backup Quotas have been enabled and updated. Reading package for 1G Resetting quota for user1 to 1024 M edquota: Quota write failed (id 511): Invalid argument Reading package 2G Resetting quota for user2 to 2048 M edquota: Quota write failed (id 518): Invalid argument Reading package 3G Resetting quota for user3 to 3072 M edquota: Quota write failed (id 521): Invalid argument Resetting quota for user4 to 3072 M edquota: Quota write failed (id 515): Invalid argument Resetting quota for user5 to 1024 M ......
طبعا اگر اسکریپت به درستی عمل میکرد ما هیچوقت نباید خطاهایی نظیر edquota: Quota write failed (id 515): Invalid argument رو مشاهده میفرمودیم، لکن دست روزگار که بازیهای عجیبی داره نتونست ببینه ما یه روز رو بدون مشکل به سر برسونیم و با خیال راحت از سر کار بریم سر خونه زندگی و زن بچهمون.
مطابق معمول جستجوهای من و استفاده از تجربیات دیگران شروع شد. سرتون رو درد نیارم آقا جان برای رفع این مشکل چند تا روش پیشنهاد میشه.
۱. ریبوت سرور که خب معمولا جواب نمیده اما امتحان یک ریبوت سریع بد نیست.
۲. اجرای دستور زیر به استناد این لینک:
/sbin/quotacheck -vguma
اگر این دستور هم مثل مشکل من مشکل شما رو حل نکرد مطابق زیر اقدام بفرمایید.
۳. طبق فرمایش نگارنده این راهحل این مشکل معمولا وقتی ایجاد میشه که از مجازی ساز openvz استفاده کرده باشید و اون رو به نسخه پایینتر دانگرید کرده باشید (که خب البته من نکرده بودم). برای رفع هم باید دستورات زیر اجرا بشه:
rm -f /dev/simfs n=$(stat / --format %d) mknod /dev/simfs b $((${n} / 256)) $((${n} % 256))
به عبارتی دایرکتوری /dev/simfs حذف و مجددا ایجاد بشه. اگر مجازی ساز شما virtuzzo باشه، دستور به شکل زیر تغییر پیدا میکنه:
rm -f /dev/vzfs n=$(stat / --format %d) mknod /dev/vzfs b $((${n} / 256)) $((${n} % 256))
در نظر داشته باشید بعد از انجام هرکدوم از راهحلها، مجدد یک بار باید اسکریپت فیکسکوتا روی سیپنل اجرا بشه.
/scripts/fixquotas
امیدوارم با انجام این موارد مشکل quota روی سرور سیپنلی شما هم حل شده باشه.
مرسی. منم این خطا رو میگرفتم برای Restore Backup توی سیپنل:
Failed to create the account: The system failed to allocate a user id because of an error Quotas are not enabled on any of the provided paths
رفع شد.