SQL با CustomBuild و ابزارهای خط فرمان در DirectAdmin

DirectAdmin امکانات قدرتمندی برای بک‌آپ‌گیری از دیتابیس‌ها، ساخت بک‌آپ کامل از خط فرمان، بازیابی SQL، بررسی فضای دیسک قبل از بک‌آپ و حتی بک‌آپ‌گیری rsync ارائه می‌دهد. این مقاله تمام روش‌های بک‌آپ SQL با CustomBuild، نحوه restore، اسکریپت‌های خودکار، و نکات مهم نسخه‌های MySQL/MariaDB را به‌صورت کامل توضیح می‌دهد.

DirectAdmin SQL BackupCustomBuild MySQLCommand-Line Backup

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

1. بک‌آپ‌گیری از فایل‌های SQL با CustomBuild


برای بک‌آپ‌گیری از دیتابیس‌ها خارج از سیستم بک‌آپ معمول DirectAdmin، می‌توانید از قابلیت mysql_backup در CustomBuild استفاده کنید.


1.1 ایجاد بک‌آپ SQL


da build set mysql_backup yes
da build mysql_backup

برای جلوگیری از overwrite شدن بک‌آپ‌ها در دفعات بعد:


mv mysql_backups mysql_backups.`date +%F`

نکته: فایل‌های SQL شامل دستورات DROP DATABASE و CREATE DATABASE هستند و با بک‌آپ‌های معمول DirectAdmin قابل جایگزینی نیستند.


2. بازیابی (Restore) فایل‌های SQL


پس از بالا آمدن MySQL و درست بودن یوزر da_admin:


cd /usr/local/directadmin/custombuild/mysql_backups
wget http://files.directadmin.com/services/mysql/restore_sql_files.sh
chmod 755 restore_sql_files.sh
./restore_sql_files.sh

برای بازیابی جداول mysql.* (در مواقع اضطراری):


./restore_sql_files.sh with_mysql

هشدار: این کار پسورد da_admin را overwrite می‌کند.


2.1 نکته مهم درباره نسخه‌های MySQL


بک‌آپ‌های SQL همیشه بین نسخه‌های مختلف MySQL/MariaDB قابل بازیابی نیستند. مثال:


  • در MySQL 5.7 ستون password به authentication_string تغییر کرده است.

بهترین حالت: بازیابی روی همان نسخه‌ای که بک‌آپ گرفته شده.


3. ساخت بک‌آپ کامل از خط فرمان


3.1 بک‌آپ کامل همه کاربران


/usr/local/directadmin/directadmin admin-backup --destination=/home/admin/admin_backups

3.2 بک‌آپ کاربران مشخص


/usr/local/directadmin/directadmin admin-backup --destination=/home/admin/admin_backups --user=testuser1 --user=testuser2

3.3 بازیابی یک کاربر


echo "action=restore&ip%5Fchoice=file&local%5Fpath=%2Fhome%2Fadmin%2Fadmin%5Fbackups&owner=admin&select%30=user%2Eadmin%2Etestuser%2Etar%2Egz&type=admin&value=multiple&when=now&where=local" >> /usr/local/directadmin/data/task.queue

برای تعیین IP جدید:


ip_choice=select&ip=1.2.3.4

4. اسکریپت نمونه برای restore خودکار


#!/bin/sh
OWNER=admin
LOCAL_PATH=/home/${OWNER}/admin_backups
IP_CHOICE=select
IP=1.2.3.4

echo -n "action=restore&local_path=${LOCAL_PATH}&owner=${OWNER}&when=now&where=local&type=admin";

if [ "${IP_CHOICE}" = "select" ]; then
       echo -n "&ip_choice=select&ip=${IP}";
else
       echo -n "&ip_choice=${IP_CHOICE}";
fi

cd ${LOCAL_PATH}
COUNT=0
for i in `/bin/ls *.gz`; do
{
       echo -n "&select${COUNT}=$i";
       COUNT=$(( $COUNT + 1 ))
};
done;

echo "";
exit 0;

و سپس:


/root/restore_all.sh >> /usr/local/directadmin/data/task.queue

5. بررسی فضای دیسک قبل از بک‌آپ


اسکریپت زیر از اجرای بک‌آپ در صورت پر بودن دیسک جلوگیری می‌کند:


#!/bin/sh
PARTITION=/dev/mapper/VolGroup00-LogVol00
MAXUSED=90

checkfree()
{
        DISKUSED=`df -P $PARTITION | awk '{print $5}' | grep % | cut -d% -f1`
        echo "$DISKUSED < $MAXUSED" | bc
}
if [ `checkfree` -eq 0 ]; then
        echo "$PARTITION disk usage is above $MAXUSED% Aborting backup.";
        exit 1;
fi

exit 0;

فعال‌سازی:


chmod 755 /usr/local/directadmin/scripts/custom/user_backup_pre.sh

6. بک‌آپ‌گیری از /home با rsync


برای بک‌آپ سبک و سریع بدون tar.gz:


#!/bin/sh
BACKUP_SOURCE="/home"
DAY_OF_WEEK=`date +%w`
ZERO_ONE=$(($DAY_OF_WEEK % 2))
BACKUP_DESTINATION="/backup/$ZERO_ONE"

mkdir -p ${BACKUP_DESTINATION}

ionice -c3 nice -n 19 rsync -q -a -W --delete $BACKUP_SOURCE $BACKUP_DESTINATION >/var/log/rsync.log 2>&1

echo `date` > ${BACKUP_DESTINATION}/last_rsync.txt

فعال‌سازی:


chmod 700 /root/rsync.sh

زمان‌بندی:


30 4 * * 2,5 /root/rsync.sh

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

مقالات مرتبط

راهنمای کامل پیکربندی کلاینت‌های ایمیل، هشدارهای 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 انعطاف‌پذیری بسیار بالا، سرعت دسترسی به نسخه‌های جدید و مصرف منابع بهینه را فراهم می‌کند.

ادامه