CpanelWHMمدیریت سرورمدیریت سرور لینوکس

بازگردانی چندین بک آپ در Cpanel

Restore Multiple Backups Cpanel

برای بازگردانی تمام دیتابیس های sql  ،ابتدا بک آپ ها را در مسیر دلخواه قرار دهید ( به عنوان مثال /backup )

سپس وارد همین مسیر شوید.

cd /backup

اکنون دستور زیر را اجرا کنید. (با فرض اینکه پسوند بک آپ ها gz است)

for a in *.gz; do /scripts/restorepkg $a; sleep 30; done;

روش دیگر استفاده از دستور زیر در مسیری که بک آپ ها قرار دارند میباشد.

for x in `ls -A1 cpmove*` ; do /scripts/restorepkg /home/${x} ; done

تمام بک آپ ها بازگردانی خواهد شد.

همچنین bash زیر برای بازگردانی تمام بک آپ های دیتابیس در یک مسیر خاص استفاده می شود. در این اسکریپت

  • پیدا کردن فایل‌ها با find "$BACKUP_DIR" -name "*.sql"
  • حذف پسوند .sql با sed 's/\.sql$//' برای به دست آوردن نام دیتابیس
  • دستور بازگردانی مستقیماً فایل .sql را به mysql هدایت می‌کند.
#!/bin/bash

# مسیر جایی که فایل های پشتیبان .sql شما قرار دارند
BACKUP_DIR="/home/sql"

# اطمینان از وجود مسیر پشتیبان
if [ ! -d "$BACKUP_DIR" ]; then
echo "خطا: مسیر پشتیبان $BACKUP_DIR وجود ندارد."
exit 1
fi

echo "شروع بازگردانی دیتابیس ها از $BACKUP_DIR ..."

# پیدا کردن تمام فایل های .sql در مسیر مشخص شده
find "$BACKUP_DIR" -name "*.sql" | while read -r FULL_PATH; do
# استخراج نام فایل (مانند iranpret_david.sql)
FILENAME=$(basename "$FULL_PATH")

# استخراج نام دیتابیس (مانند iranpret_david از iranpret_david.sql)
DB_NAME=$(echo "$FILENAME" | sed 's/\.sql$//')

echo "----------------------------------------------------"
echo "در حال پردازش فایل: $FILENAME"
echo "نام دیتابیس هدف: $DB_NAME"

# بررسی اینکه آیا دیتابیس هدف واقعاً وجود دارد
DB_EXISTS=$(mysql -N -e "SHOW DATABASES LIKE '$DB_NAME';" 2>/dev/null)
if [ -z "$DB_EXISTS" ]; then
echo "اخطار: دیتابیس '$DB_NAME' در MySQL وجود ندارد. از این فایل پشتیبان صرف نظر می شود."
continue
fi
echo "در حال بازگردانی $FILENAME به دیتابیس $DB_NAME..."
# بازگردانی دیتابیس مستقیماً از فایل .sql
if mysql "$DB_NAME" < "$FULL_PATH"; then
echo "بازگردانی دیتابیس '$DB_NAME' با موفقیت انجام شد."
else
echo "خطا در بازگردانی دیتابیس '$DB_NAME' از فایل '$FULL_PATH'."
fi
echo "----------------------------------------------------"
done
echo "عملیات بازگردانی به پایان رسید."

نحوه استفاده:

  1. این کد را در یک فایل (مثلاً restore_uncompressed_dbs.sh) ذخیره کنید.
  2. با دستور chmod +x restore_uncompressed_dbs.sh به آن اجازه اجرا بدهید.
  3. اسکریپت را با ./restore_uncompressed_dbs.sh اجرا کنید.

نوشته های مشابه

1 دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا