~3 min read • Updated Feb 27, 2026
1. تبدیل ftp_download.php به ncftpget
اگر میخواهید بهجای PHP از ابزار ncftpget برای دانلود بکآپها استفاده کنید، کافی است فایل زیر را ایجاد کنید:
/usr/local/directadmin/scripts/custom/ftp_download.phpو محتوای زیر را داخل آن قرار دهید:
/bin/sh
FTPGET=/usr/bin/ncftpget
TOUCH=/bin/touch
PORT=${ftp_port}
if [ ! -e $TOUCH ] && [ -e /usr/bin/touch ]; then
TOUCH=/usr/bin/touch
fi
if [ ! -e $FTPGET ]; then
echo "";
echo "*** Backup not downloaded ***";
echo "Please install $FTPGET by running:";
echo "";
echo "cd /usr/local/directadmin/scripts";
echo "./ncftp.sh";
echo "";
exit 10;
fi
CFG=${ftp_local_file}.cfg
/bin/rm -f $CFG
$TOUCH $CFG
/bin/chmod 600 $CFG
/bin/echo "host $ftp_ip" >> $CFG
/bin/echo "user $ftp_username" >> $CFG
/bin/echo "pass $ftp_password_esc_double_quote" >> $CFG
$FTPGET -C -f $CFG -V -t 25 -P $PORT "$ftp_ip" "$ftp_path/$ftp_remote_file" "$ftp_local_file" 2>&1
RET=$?
/bin/rm -f $CFG
exit $RET
و سپس آن را اجرایی کنید:
chmod 755 /usr/local/directadmin/scripts/custom/ftp_download.php2. کاهش سرعت بکآپ برای جلوگیری از فشار روی FTP
اگر تعداد کاربران زیاد است، ممکن است اتصالهای پشتسرهم به FTP باعث بلاک شدن یا فشار زیاد روی سرور مقصد شود. برای ایجاد مکث بین هر بکآپ:
فایل زیر را بسازید:
/usr/local/directadmin/scripts/custom/user_backup_post.shو داخل آن بنویسید:
#!/bin/sh
sleep 20
exit 0;
فعالسازی:
chmod 755 /usr/local/directadmin/scripts/custom/user_backup_post.shاین کار باعث میشود بعد از ساخت هر فایل tar.gz، سیستم ۲۰ ثانیه مکث کند.
3. ساخت سرور بکآپ افزونهای (Redundant Backup Server)
DirectAdmin بهصورت پیشفرض برای کار تکسروره طراحی شده، اما میتوان با چند روش یک سرور بکآپ افزونهای ساخت:
3.1 روش اول: انتقال شبانه + کرون Restore
میتوانید هر شب بکآپها را به یک سرور DirectAdmin دیگر منتقل کنید و سپس با یک کرون، آنها را restore کنید.
برای ساخت کرون Restore:
- یک restore معمولی انجام دهید
- بلافاصله دستور زیر را اجرا کنید:
cat /usr/local/directadmin/data/task.queueخروجی این فایل همان چیزی است که باید در کرون قرار دهید.
3.2 روش دوم: استفاده از rsync (بهترین روش)
مزایا:
- نیاز به لایسنس دوم DirectAdmin ندارد
- فقط فایلهای تغییرکرده منتقل میشوند
- مصرف پهنای باند بسیار کمتر
فقط باید بدانید کدام مسیرها را منتقل کنید و از انتقال فایلهای سیستمی مثل /etc/passwd خودداری کنید.
4. افزودن تاریخ به نام فایل بکآپ FTP
بکآپهای FTP معمولاً تاریخ را در نام فایل ندارند. برای اضافه کردن تاریخ، کافی است نسخه سفارشی ftp_upload.php بسازید.
4.1 ساخت نسخه سفارشی
cd /usr/local/directadmin/scripts/custom
cp ../ftp_upload.php .
chmod 755 ./ftp_upload.php
4.2 افزودن تاریخ به نام فایل
در خط دوم فایل (بعد از shebang):
ftp_remote_file="`echo $ftp_remote_file | awk -F. '{for (i=1; iمیتوانید حتی md5sum را هم اضافه کنید:
ftp_remote_file="`echo $ftp_remote_file | awk -F. '{for (i=1; iنکته: این روش با backup_ftp_md5=1 سازگار نیست و باید backup_ftp_upload_confirmation غیرفعال باشد.
Written & researched by Dr. Shahin Siami