~3 min read • Updated Mar 1, 2026
1. dataskq چیست و چگونه کار میکند؟
dataskq پردازنده داخلی DirectAdmin برای اجرای وظایف صفشده است. هر زمان عملیاتی نیاز به اجرا داشته باشد، DirectAdmin آن را در فایل task.queue ذخیره میکند و dataskq در زمانبندی مشخص آن را پردازش میکند.
مسیرها و رفتار اصلی:
- فایل اجرایی:
/usr/local/directadmin/dataskq - صف وظایف:
/usr/local/directadmin/data/task.queue - زمان اجرا: هر ۱ دقیقه (قابل تغییر با
dataskq_run_interval) - رفتار: پس از پردازش، فایل task.queue حذف میشود.
مزیت: وظایف مشابه فقط یک بار اجرا میشوند (مثلاً reload وبسرور پس از چند تغییر).
نکته: پس از تغییرات مهم، حداقل ۱ دقیقه صبر کنید تا dataskq اجرا شود.
---2. مثالهایی از اضافه کردن وظیفه به task.queue
میتوانید وظایف را بهصورت دستی به صف اضافه کنید:
# ریاستارت DirectAdmin
echo "action=directadmin&value=restart" >> /usr/local/directadmin/data/task.queue
# بازنویسی کانفیگ وبسرور یک کاربر
echo "action=rewrite&value=httpd&user=fred" >> /usr/local/directadmin/data/task.queue
# بهروزرسانی DirectAdmin
echo "action=update&value=program" >> /usr/local/directadmin/data/task.queue
# اجرای nightly tally برای همه کاربران
echo "action=tally&value=all" >> /usr/local/directadmin/data/task.queue
---
3. اجرای دستی dataskq
برای اجرای فوری بدون انتظار کرون:
# اجرای معمولی
/usr/local/directadmin/dataskq d
# اجرای دیباگ (سطوح پیشنهادی: d80، d400، d800، d2000)
/usr/local/directadmin/dataskq d2000
---
4. فایل task.queue.cb چیست؟
این فایل توسط CustomBuild استفاده میشود و وظایف مربوط به نصب/آپدیت نرمافزار را نگه میدارد.
مسیر:
/usr/local/directadmin/data/task.queue.cb
برای پردازش فقط وظایف CustomBuild:
/usr/local/directadmin/dataskq d2000 --custombuild
---
5. محدود کردن تعداد نمونههای همزمان dataskq
برای جلوگیری از اجرای همزمان چند dataskq (در سرورهای بسیار بزرگ):
da config-set dataskq_max_instances 1 --restart
توصیه: مقدار پیشفرض بهتر است. فقط در شرایط خاص آن را تغییر دهید.
---6. افزایش فرکانس اجرای dataskq
برای اجرای هر ۳۰ ثانیه:
da config-set dataskq_run_interval 30s --restart
---
7. اگر dataskq باعث ۱۰۰٪ CPU شد چه کنیم؟
۱. بررسی لاگها
tail -n 100 /var/log/directadmin/system.log
۲. دیباگ dataskq
killall -USR1 dataskq
tail -n 10 /var/log/directadmin/errortaskq.log
دلایل رایج:
- Maildir بزرگ → حذف ایمیلهای حجیم
- لاگهای brute force بسیار بزرگ → کوتاه کردن brute_log_entries.list
8. مشکلات رایج و راهحلها
8.1 ریست ماهانه پهنای باند انجام نشده
اگر کرون اجرا نشده بود:
echo "action=cleanreset&value=all" >> /usr/local/directadmin/data/task.queue
/usr/local/directadmin/dataskq d
echo "action=tally&value=all" >> /usr/local/directadmin/data/task.queue
فقط tally پهنای باند:
echo "action=bandwidthtally&value=all" >> /usr/local/directadmin/data/task.queue
tally کوتا:
echo "action=quotatally&value=all" >> /usr/local/directadmin/data/task.queue
بازنویسی DNS zone:
echo "action=rewrite&value=named&domain=domain.com" >> /usr/local/directadmin/data/task.queue
بازنویسی httpd برای یک کاربر:
echo "action=rewrite&value=httpd&user=fred" >> /usr/local/directadmin/data/task.queue
---
9. لیست دستورات مهم task.queue
- ریاستارت سرویسها:
action=rewrite&value=eximیاdovecot - بازسازی DKIM:
action=rewrite&value=dkim - تبدیل mail partition:
action=convert&value=mail_partition - بهروزرسانی لایسنس:
action=update&value=license - بکآپ کاربر:
action=backup&type=user&value=john - ریستور کاربر:
action=restore&type=user&value=john - حذف دامنه:
action=delete&value=domain&select0=domain.com - ارسال پیام به ادمین:
action=notify&value=admin&subject=...&message=...
Written & researched by Dr. Shahin Siami