~3 دقیقه مطالعه • بروزرسانی ۸ اسفند ۱۴۰۴
1. استفاده از rsync برای بکآپگیری از /home روی سرور ریموت
با افزایش حجم دادهها روی سرورها، بکآپهای tar.gz زمانبرتر میشوند. اگر بیشتر دادههای شما در public_html یا پوشههای ایمیل قرار دارد، استفاده از rsync برای بکآپگیری از کل مسیر /home یک روش بسیار سریع و کارآمد است.
نکته مهم: ابتدا باید اکانتهای DirectAdmin را restore کنید. پس از ایجاد کاربران، میتوانید دادهها را با rsync برگردانید. در صورت نیاز، میتوانید restore را دوباره اجرا کنید.
در هنگام ساخت بکآپ DirectAdmin، در مرحله ۴ گزینههای زیر را غیرفعال کنید:
Domains DirectoryE-Mail Data
این دادهها در مسیر /home قرار دارند و rsync آنها را مدیریت میکند.
1.1 نمونه اسکریپت rsync برای بکآپ ریموت
#!/bin/bash
BACKUP_HOST="remote.hostname.com"
BACKUP_USER=`hostname -s`
BACKUP_SOURCE="/home"
BACKUP_DESTINATION="/home/$BACKUP_USER/users"
ionice -c3 nice -n 19 rsync -q -a --delete -e ssh $BACKUP_SOURCE \
$BACKUP_USER@$BACKUP_HOST:$BACKUP_DESTINATION >/var/log/backup.log 2>&1
پس از restore اکانتها:
- دادهها را با rsync برگردانید
- مسیر
/home/USERNAME/domainsرا در صورت نیاز اصلاح کنید
برای بکآپ تنظیمات وبمیل:
/var/www/html/squirrelmail/data/var/www/html/webmail/tmp
2. نگهداشتن همزمان بکآپ محلی و ریموت
DirectAdmin اجازه ذخیره همزمان لوکال و FTP را نمیدهد. برای داشتن هر دو، یک بکآپ FTP بسازید و با اسکریپت user_backup_post.sh قبل از حذف فایل، یک نسخه محلی ذخیره کنید.
2.1 اسکریپت برای ذخیره محلی فقط برای admin
#!/bin/sh
RESELLER=admin
SAVE_PATH=/home/${RESELLER}/admin_backups
BACKUP_PATH=$(echo $file | cut -d/ -f1,2,3,4)
REQUIRED_PATH=/home/tmp/${RESELLER}.
if [[ "$BACKUP_PATH" == ${REQUIRED_PATH}* ]]; then
NEW_FILE=${SAVE_PATH}/`echo $file | cut -d/ -f6`
cp -fp $file ${NEW_FILE}
fi
exit 0;
2.2 اسکریپت برای همه ریسلرها
#!/bin/sh
RESELLER=$reseller
SAVE_PATH=/home/${RESELLER}/user_backups
BACKUP_PATH=`echo $file | cut -d/ -f1,2,3,4`
REQUIRED_PATH=/home/tmp/
if [[ "$BACKUP_PATH" == ${REQUIRED_PATH}* ]]; then
NEW_FILE=${SAVE_PATH}/`echo $file | cut -d/ -f6`
cp -fp $file ${NEW_FILE}
fi
exit 0;
فعالسازی:
chmod 755 /usr/local/directadmin/scripts/custom/user_backup_post.sh3. استخراج و بازسازی فایل بکآپ tar.gz
اگر فایل بکآپ خراب باشد، DirectAdmin نمیتواند آن را restore کند. میتوانید آن را استخراج و دوباره فشرده کنید.
3.1 استخراج
cd /home/admin/admin_backups
cp user.admin.bob.tar.gz user.admin.bob.tar.gz.backup
mkdir temp
cd temp
tar xvzf ../user.admin.bob.tar.gz
3.2 فشردهسازی مجدد
cd /home/admin/admin_backups/temp
tar cvzf ../user.admin.bob.tar.gz *
4. کار با فایلهای tar.zst
4.1 ساخت فایل tar.zst
tar --preserve-permissions --use-compress-program /usr/local/bin/zstdmt \
-cf backup.tar.zst backup
4.2 استخراج
tar --preserve-permissions --use-compress-program /usr/local/bin/zstdmt \
-xf backup.tar.zst
5. timeout در mysqldump
DirectAdmin مقدار زیر را دارد:
database_dump_timeout=14400برای غیرفعال کردن:
/usr/local/directadmin/directadmin set database_dump_timeout 06. خطای “MySQL Server Has Gone Away” هنگام restore
دلایل احتمالی:
- مقدار
wait_timeoutکم است - MySQL وسط restore ریاستارت شده
- مقدار
max_allowed_packetکم است
افزایش مقدار:
max_allowed_packet=20M7. خطای Backup Abort (2): Hard Link Found
این خطا زمانی رخ میدهد که backup_hard_link_check=1 فعال باشد و یک hard link در مسیر کاربر پیدا شود.
برای غیرفعال کردن:
backup_hard_link_check=0حتماً مقدار زیر فعال باشد:
strict_backup_permissions=1بهبود سرعت بکآپ:
direct_imap_backup=1نادیده گرفتن خطاهای خواندن:
extra_backup_option=--warning=no-file-removed --warning=no-file-changed8. خطاهای رایج FTP در بکآپ
8.1 curl: (55) Send failure: Connection reset by peer
- کاربر FTP over quota
- فایروال پورتهای 20، 21 و 35000–35999 را بسته است
8.2 curl: (55) SSL_write() returned SYSCALL
کلاینت از پروتکل SSL موردنیاز پشتیبانی نمیکند.
8.3 curl: (55) Send failure: Connection timed out
احتمالاً مشکل فایروال است.
8.4 curl: (7) Failed to connect: Connection refused
سرور FTP اتصال را نمیپذیرد.
نوشته و پژوهش شده توسط دکتر شاهین صیامی