مدیریت Disk Space و Bandwidth در DirectAdmin – راهنمای کامل محاسبه، محدودیت‌ها، هشدارها و گزارش‌گیری

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

Bandwidth Management in DirectAdminDisk Space

~3 دقیقه مطالعه • بروزرسانی ۱۰ اسفند ۱۴۰۴

1. فضای دیسک چگونه محاسبه می‌شود؟


از نسخه 1.59.6 به بعد، DirectAdmin از متغیر زیر برای محاسبه فضای دیسک استفاده می‌کند:


realtime_quota=2

این مقدار باعث می‌شود DirectAdmin از سیستم Quota در سطح کرنل استفاده کند و مصرف را به‌صورت لحظه‌ای نمایش دهد.

مقادیر دیگر:

  • realtime_quota=0 → محاسبه شبانه (tally)
  • realtime_quota=1 → استفاده از دستور quota -v (کندتر)
  • realtime_quota=2 → سریع‌ترین حالت با quotactl

نکته: اگر پارتیشن‌ها یا mountها را تغییر دادید، باید DirectAdmin را ری‌استارت کنید تا لیست mount جدید بارگذاری شود.

---

2. چرا مصرف دیسک بیشتر از حد مجاز نمایش داده می‌شود؟


دلایل اصلی:

1. تفاوت Soft Limit و Hard Limit

Hard Limit معمولاً 1.1 برابر مقدار تعیین‌شده در DirectAdmin است تا فضای موقت برای فایل‌های بزرگ وجود داشته باشد.

می‌توانید آن را به 1.0 کاهش دهید.

2. فایل‌هایی که تحت سیستم Quota نیستند

DirectAdmin این فایل‌ها را حساب می‌کند اما سیستم Quota آن‌ها را محدود نمی‌کند:

  • دیتابیس‌های MySQL
  • فایل‌های متعلق به apache
  • داده‌های mailing list

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

---

3. DirectAdmin چه نوع پهنای باندی را محاسبه می‌کند؟


DirectAdmin فقط پهنای باندی را محاسبه می‌کند که بتوان آن را به یک User نسبت داد. بنابراین مقدار نمایش‌داده‌شده همیشه کمتر از مصرف واقعی دستگاه است.

DirectAdmin محاسبه می‌کند:

  • Apache: تمام ترافیک دامنه‌ها
  • FTP: آپلود و دانلود
  • Outgoing Email: ایمیل‌های خروجی قابل شناسایی
  • Incoming Email: ایمیل‌های ورودی معتبر
  • POP/IMAP (با dovecot)
  • Backup FTP (قابل غیرفعال‌سازی)

DirectAdmin محاسبه نمی‌کند:

  • ترافیک اسکریپت‌ها (مثل curl/wget داخل PHP)
  • دستورات SSH مثل wget
  • آپدیت‌های سیستم (yum/apt)
  • DNS (named)
  • پینگ و ترافیک سطح پایین
---

4. پهنای باند ریسلر (DirectAdmin v1.595+)


DirectAdmin اکنون پهنای باند کاربران حذف‌شده را نیز برای ریسلر ذخیره می‌کند:


deleted_user_bandwidth=123456

این مقدار در فایل زیر ذخیره می‌شود:


/usr/local/directadmin/data/users/RESELLER/bandwidth.reseller.tally

در پایان ماه، این فایل برای کاربران حذف‌شده پاک‌سازی می‌شود.

---

5. ارسال هشدار Overusage


DirectAdmin هنگام نزدیک شدن به محدودیت‌ها هشدار ارسال می‌کند.

قالب‌های هشدار:

  • /usr/local/directadmin/data/templates/user_limit.txt
  • /usr/local/directadmin/data/templates/reseller_limit.txt

توکن‌های مهم:

  • BANDWIDTHUSAGEGIG
  • BANDWIDTHLIMITGIG
  • QUOTAUSAGEGIG
  • QUOTALIMITGIG
  • INODEUSAGE
  • INODELIMIT
  • REASON=quota|bandwidth|inode

آستانه هشدار (درصد):


user_warning_thresh=80
user_warning_thresh_disk=95
user_warning_thresh_inode=95
---

6. اسکریپت‌های Pre/Post برای هشدارها


برای اجرای اسکریپت قبل یا بعد از ارسال هشدار:

قبل از ارسال:


/usr/local/directadmin/scripts/custom/overusage_notice_pre.sh

بعد از ارسال:


/usr/local/directadmin/scripts/custom/overusage_notice_post.sh

متغیرهای محیطی شامل:

  • USERNAME
  • BANDWIDTH
  • QUOTA
  • TIMELEFT
  • SUSPENDATLIMIT
  • CREATOR
---

7. غیرفعال کردن هشدارها برای حساب‌های Suspend شده


DirectAdmin از این متغیرها در user.conf استفاده می‌کند:


sentwarning_bandwidth=yes|no
sentwarning_inode=yes|no
sentwarning_quota=yes|no

اگر حساب Suspend شود، هشدارها ارسال نمی‌شوند.

---

8. گزارش پهنای باند ماه‌های گذشته


DirectAdmin قبل از ریست ماهانه، فایل bandwidth.tally.cache را در مسیر زیر ذخیره می‌کند:


/usr/local/directadmin/data/users/username/history/YYYY-MM.log

این فایل‌ها از طریق بخش User History قابل مشاهده هستند.

API نیز از این قابلیت پشتیبانی می‌کند:


CMD_API_BANDWIDTH_BREAKDOWN&year=2024&month=9

نوشته و پژوهش شده توسط دکتر شاهین صیامی