سفارشی‌سازی دانلود و آپلود FTP در DirectAdmin: تبدیل ftp_download.php، کنترل سرعت بک‌آپ و ساخت سرور بک‌آپ افزونه‌ای

DirectAdmin امکان سفارشی‌سازی کامل فرآیند دانلود و آپلود بک‌آپ‌های FTP را فراهم می‌کند. این مقاله نحوه تبدیل ftp_download.php به ncftpget، کاهش سرعت بک‌آپ برای جلوگیری از فشار روی سرور ریموت، ساخت سرور بک‌آپ افزونه‌ای با استفاده از rsync یا کرون Restore، و افزودن تاریخ به نام فایل‌های بک‌آپ را به‌صورت کامل و عملی توضیح می‌دهد.

ftp_download.phpDirectAdmin FTP BackupRedundant Backup Server

~3 دقیقه مطالعه · آخرین به‌روزرسانی ۸ اسفند ۱۴۰۴

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.php

2. کاهش سرعت بک‌آپ برای جلوگیری از فشار روی 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 غیرفعال باشد.


نوشته و پژوهش‌شده توسط دکتر شاهین صیامی

مقالات مرتبط

راهنمای کامل پیکربندی کلاینت‌های ایمیل، هشدارهای quota در Dovecot و بررسی آخرین لاگین‌ها در DirectAdmin

این مقاله یک مرجع جامع برای کاربران و مدیران DirectAdmin است. در این راهنما یاد می‌گیرید چگونه ایمیل را روی iPhone، Thunderbird و Gmail تنظیم کنید، هشدارهای پر شدن quota را در Dovecot فعال کنید و با یک اسکریپت ساده، آخرین زمان لاگین تمام حساب‌های ایمیل را مشاهده کنید.

ادامه

عیب‌یابی Dovecot در DirectAdmin – رفع خطاهای IMAP، مشکلات احراز هویت و بررسی گواهی SSL

Dovecot سرویس اصلی IMAP/POP3 در DirectAdmin است. گاهی کاربران هنگام ورود به وب‌میل یا کلاینت ایمیل با خطاهایی مثل "Connection dropped" یا "unknown user" مواجه می‌شوند. این مقاله یک راهنمای کامل برای رفع خطاهای رایج Dovecot، پاک‌سازی ایندکس‌ها، بررسی دیتابیس‌های احراز هویت و تست گواهی SSL روی پورت‌های 143 و 993 است.

ادامه

عیب‌یابی DNS در DirectAdmin – وقتی named اجرا می‌شود اما دامنه resolve نمی‌شود

گاهی سرویس named (BIND) روی سرور اجرا می‌شود اما دامنه‌ها resolve نمی‌شوند یا از بیرون پاسخ DNS دریافت نمی‌شود. این مقاله یک راهنمای کامل برای بررسی listen، فایروال، تنظیمات named.conf، propagation، رکوردهای اشتباه، مشکلات ساب‌دامین، resolv.conf و خطاهای رایج DNS در DirectAdmin است.

ادامه

مدیریت رکوردهای DNS در DirectAdmin – راهنمای کامل، کاربردی و حرفه‌ای

DirectAdmin ابزارهای قدرتمندی برای مدیریت DNS ارائه می‌دهد: از کاهش TTL برای جلوگیری از downtime، تا ساخت رکوردهای SRV، فعال‌سازی DNSSEC، مدیریت delegation ساب‌دامین‌ها، افزودن خودکار TLSA برای DANE و حتی تغییرات گروهی (Mass Update) روی همه دامنه‌ها. این مقاله یک مرجع کامل برای مدیریت حرفه‌ای DNS در DirectAdmin است.

ادامه

DNS و Nameserverها در DirectAdmin – راهنمای کامل، کاربردی و حرفه‌ای

DNS ستون فقرات اینترنت است و وظیفه دارد نام دامنه را به IP تبدیل کند. در DirectAdmin می‌توان Nameserverهای اختصاصی ساخت، DNS را مدیریت کرد، DNS Clustering راه‌اندازی کرد و حتی از DNS خارجی استفاده نمود. این مقاله یک راهنمای جامع برای درک DNS، ساخت ns1/ns2، تنظیم Glue Record، رفع خطاها و مدیریت حرفه‌ای DNS در DirectAdmin است.

ادامه

CustomBuild در DirectAdmin – راهنمای کامل نصب، به‌روزرسانی، پیکربندی و سفارشی‌سازی پیشرفته

CustomBuild ابزار اصلی DirectAdmin برای مدیریت سرویس‌ها و نرم‌افزارهای سرور است. این ابزار وب‌سرور، PHP، دیتابیس، ایمیل، FTP و بسیاری از کامپوننت‌های دیگر را نصب، به‌روزرسانی و پیکربندی می‌کند. به دلیل کامپایل از سورس، CustomBuild انعطاف‌پذیری بسیار بالا، سرعت دسترسی به نسخه‌های جدید و مصرف منابع بهینه را فراهم می‌کند.

ادامه