~4 min read • Updated Feb 27, 2026
1. Backup Challenges with Large Users
When user accounts contain large amounts of data, creating backups becomes slow and resource‑intensive. DirectAdmin offers several ways to reduce system load:
- Run backups less frequently (e.g., once per week)
- Split users across different days of the week
- Disable certain backup components (IMAP, Databases, Domains Directory)
- Use
rsyncfor heavy data instead of tar.gz backups
In newer DirectAdmin versions, Step 4 (“What”) of the backup creation process allows you to choose exactly which areas to include.
2. Using rsync for Users with Large Directories
If /home/username/domains is extremely large, you can deselect the Domains Directory option and transfer it using rsync instead.
For email or other large data, you may rsync the entire /home/username directory.
3. Moving Heavy Data into Skipped Directories
If certain data does not need frequent backups (e.g., static images), you can move it into a directory that DirectAdmin skips during backup.
Example:
cd /home/user
mkdir var
chown user:user var
cd var
cp -Rp ../domains/domain.com/public_html/images .
Then create a symlink:
cd /home/user/domains/domain.com/public_html
mv images images.old
ln -s ../../../var/images .
4. Reducing Disk Load with ionice
Some operating systems support ionice, which limits disk I/O for specific processes.
DirectAdmin also supports limiting the tar process using ionice.
5. Transferring Large Accounts in Multiple Parts
If a user account is too large to back up as a single tar.gz file, you can break the backup into smaller components:
- Deselect “Domains Directory”
- Deselect “E-Mail Data”
- Deselect “Database Data”
Restore each part separately, then use rsync to transfer the heavy data.
6. Controlling System Load Before Backups
If you want to prevent backups from running during high‑load periods, you can check system load before each backup begins.
6.1 Load‑Control Script
#!/bin/sh
MAXTRIES=20
MAXLOAD=8.00
highload()
{
LOAD=`cat /proc/loadavg | cut -d\ -f1`
echo "$LOAD > $MAXLOAD" | bc
}
TRIES=0
while [ `highload` -eq 1 ];
do
sleep 5;
if [ "$TRIES" -ge "$MAXTRIES" ]; then
echo "system load above $MAXLOAD for $MAXTRIES attempts. Aborting.";
exit 1;
fi
((TRIES++))
done;
exit 0;
Make executable:
chmod 755 /usr/local/directadmin/scripts/custom/user_backup_pre.sh7. Preventing Backup Conflicts with Quota Counting
DirectAdmin version 1.596 and newer use realtime_quotas=2 by default, preventing quota miscalculations during backups.
If realtime_quotas=0 is used, DA may double‑count disk usage.
Solutions:
- Enable
realtime_quotas=2 - Move
backup_tmpdirto a different partition - Enable
direct_imap_backup=1
8. Restricting Backup Creation to Specific Hours
If you want to prevent users or resellers from creating backups during peak hours, use the all_pre.sh script.
8.1 Example Time‑Restriction Script
#!/bin/sh
HOUR=`date +%k`
MAKINGBACKUP=0
if [ "$command" = "/CMD_USER_BACKUP" ]; then
if [ "$action" = "create" ]; then
MAKINGBACKUP=1
if [ "$when" = "cron" ]; then
HOUR=$hour
fi
fi
fi
if [ "$command" = "/CMD_SITE_BACKUP" ]; then
if [ "$action" = "backup" ]; then
MAKINGBACKUP=1
fi
fi
if [ "$MAKINGBACKUP" -eq 1 ]; then
if [ "$HOUR" -ge 1 ] && [ "$HOUR" -lt 8 ]; then
exit 0;
else
echo "Backups must be created between 1am and 8am";
exit 1;
fi
fi
exit 0;
Make executable:
chmod 755 /usr/local/directadmin/scripts/custom/all_pre.shWritten & researched by Dr. Shahin Siami