~3 min read • Updated Mar 1, 2026
1. What Is dataskq and How Does It Work?
The Task Queue Processor, known as dataskq, is responsible for executing queued operations inside DirectAdmin. Rather than performing actions instantly, DirectAdmin writes tasks into a queue file and lets dataskq process them at scheduled intervals.
Key paths and behavior:
- Binary:
/usr/local/directadmin/dataskq - Task queue Error! Hyperlink reference not valid.
/usr/local/directadmin/data/task.queue - Execution frequency: Once per minute by default (configurable via
dataskq_run_interval) - Behavior: After processing,
task.queueis deleted. It is normal for the file to not exist at times.
Benefit: Similar tasks (e.g., multiple domain additions requiring a webserver reload) are grouped and executed only once.
Note: After major changes (e.g., enabling SSL, adding a domain), wait at least one minute for dataskq to run.
---2. Common Examples of Adding Tasks to task.queue
You can manually append tasks to the queue:
# Restart DirectAdmin
echo "action=directadmin&value=restart" >> /usr/local/directadmin/data/task.queue
# Rewrite a user's webserver configuration
echo "action=rewrite&value=httpd&user=fred" >> /usr/local/directadmin/data/task.queue
# Update DirectAdmin
echo "action=update&value=program" >> /usr/local/directadmin/data/task.queue
# Run nightly tally for all users
echo "action=tally&value=all" >> /usr/local/directadmin/data/task.queue
---
3. Running dataskq Manually
You can run dataskq manually without waiting for cron:
# Normal execution
/usr/local/directadmin/dataskq d
# Debug mode (recommended levels: d80, d400, d800, d2000)
/usr/local/directadmin/dataskq d2000
---
4. What Is task.queue.cb?
task.queue.cb is used by CustomBuild for software installation and update tasks.
Path:
/usr/local/directadmin/data/task.queue.cb
To process only CustomBuild tasks:
/usr/local/directadmin/dataskq d2000 --custombuild
---
5. Limiting the Number of dataskq Instances
To prevent multiple simultaneous dataskq processes (useful on very large servers):
da config-set dataskq_max_instances 1 --restart
Recommendation: Keep the default (multiple instances allowed). Only adjust if you experience heavy load.
---6. Increasing dataskq Execution Frequency
To run dataskq more frequently than once per minute:
da config-set dataskq_run_interval 30s --restart
This runs dataskq every 30 seconds.
---7. What If dataskq Causes 100% CPU Usage?
Step 1: Check system logs
tail -n 100 /var/log/directadmin/system.log
Step 2: Debug dataskq
killall -USR1 dataskq
tail -n 10 /var/log/directadmin/errortaskq.log
Common causes:
- Large Maildir inbox → delete heavy emails
- Huge brute-force logs → trim
brute_log_entries.list
8. Common Issues and Fixes
8.1 Monthly bandwidth reset not running
Ensure cron ran at 4:20 AM on the first day of the month. If not, run manually:
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
Bandwidth-only tally:
echo "action=bandwidthtally&value=all" >> /usr/local/directadmin/data/task.queue
Quota tally:
echo "action=quotatally&value=all" >> /usr/local/directadmin/data/task.queue
Rewrite DNS zone:
echo "action=rewrite&value=named&domain=domain.com" >> /usr/local/directadmin/data/task.queue
Rewrite httpd for a user:
echo "action=rewrite&value=httpd&user=fred" >> /usr/local/directadmin/data/task.queue
---
9. Useful task.queue Commands
- Restart services:
action=rewrite&value=eximordovecot - Rebuild DKIM:
action=rewrite&value=dkim - Mail partition conversion:
action=convert&value=mail_partition - Update license:
action=update&value=license - User backup:
action=backup&type=user&value=john - User restore:
action=restore&type=user&value=john - Delete domain:
action=delete&value=domain&select0=domain.com - Send admin notification:
action=notify&value=admin&subject=...&message=...
Written & researched by Dr. Shahin Siami