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 "عملیات بازگردانی به پایان رسید."
نحوه استفاده:
- این کد را در یک فایل (مثلاً
restore_uncompressed_dbs.sh
) ذخیره کنید. - با دستور
chmod +x restore_uncompressed_dbs.sh
به آن اجازه اجرا بدهید. - اسکریپت را با
./restore_uncompressed_dbs.sh
اجرا کنید.
مقاله مفیدی بود دوست من ممنون اززحماتتون