~4 دقیقه مطالعه • بروزرسانی ۸ اسفند ۱۴۰۴
1. مشکل بکآپگیری از کاربران حجیم
وقتی حجم کاربران یا دادههای آنها زیاد باشد، ساخت بکآپ زمانبر و سنگین میشود. برای کاهش فشار سرور، چند روش وجود دارد:
- بکآپگیری کمتر (مثلاً فقط یکبار در هفته)
- تقسیم کاربران در روزهای مختلف هفته
- غیرفعال کردن بخشهایی از بکآپ (مثل IMAP، دیتابیس یا Domains Directory)
- استفاده از
rsyncبرای انتقال دادههای حجیم
در نسخههای جدید DirectAdmin، در مرحله ۴ بکآپ (Step 4: What) میتوانید دقیقاً انتخاب کنید چه بخشهایی بکآپ شوند.
2. استفاده از rsync برای کاربران با پوشههای حجیم
اگر مسیر /home/username/domains بسیار بزرگ است، میتوانید گزینه Domains Directory را غیرفعال کنید و سپس با rsync آن را منتقل کنید.
برای دادههای ایمیل یا سایر مسیرها نیز میتوانید کل /home/username را rsync کنید.
3. انتقال دادههای حجیم به مسیرهای اسکیپشده
اگر بخشی از دادهها نیاز به بکآپ مداوم ندارند (مثل تصاویر ثابت)، میتوانید آنها را به مسیرهای اسکیپشده منتقل کنید.
مثال:
cd /home/user
mkdir var
chown user:user var
cd var
cp -Rp ../domains/domain.com/public_html/images .
سپس لینک ایجاد کنید:
cd /home/user/domains/domain.com/public_html
mv images images.old
ln -s ../../../var/images .
4. کاهش فشار دیسک با ionice
برخی سیستمعاملها از ionice پشتیبانی میکنند که میتواند سرعت دسترسی دیسک را محدود کند.
DirectAdmin امکان محدود کردن tar با ionice را نیز دارد.
5. انتقال کاربران حجیم در چند مرحله
اگر بکآپ یک کاربر بسیار بزرگ است و tar.gz قابل ساخت نیست، میتوانید بکآپ را به چند بخش تقسیم کنید:
- غیرفعال کردن Domains Directory
- غیرفعال کردن E-Mail Data
- غیرفعال کردن Database Data
سپس هر بخش را جداگانه restore کنید و دادههای حجیم را با rsync منتقل کنید.
6. کنترل لود قبل از ساخت بکآپ
اگر نمیخواهید بکآپ در زمانهای شلوغ اجرا شود، میتوانید لود سیستم را قبل از هر بکآپ بررسی کنید.
6.1 اسکریپت کنترل لود
#!/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;
فعالسازی:
chmod 755 /usr/local/directadmin/scripts/custom/user_backup_pre.sh7. جلوگیری از تداخل بکآپ با سیستم quota
در نسخههای جدید DirectAdmin مقدار realtime_quotas=2 بهصورت پیشفرض فعال است و مشکل تداخل بکآپ با شمارش quota را حل میکند.
اگر realtime_quotas=0 باشد، ممکن است DA حجم کاربر را دو برابر حساب کند.
راهحلها:
- فعالسازی
realtime_quotas=2 - تغییر مسیر
backup_tmpdirبه پارتیشن دیگر - فعالسازی
direct_imap_backup=1
8. محدود کردن زمان مجاز برای بکآپ کاربران و ریسلرها
اگر نمیخواهید کاربران در ساعات شلوغ بکآپ بگیرند، میتوانید از اسکریپت all_pre.sh استفاده کنید.
8.1 نمونه اسکریپت محدودیت زمانی
#!/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;
فعالسازی:
chmod 755 /usr/local/directadmin/scripts/custom/all_pre.shنوشته و پژوهش شده توسط دکتر شاهین صیامی