لکن اگر نیاز به اسکریپتی دارید که بتواند از همه دیتابیسهاس MySQL یک سرور بکاپ بگیرد میتوانید از اسکریپت زیر استفاده نُمایید.
#! /bin/bash TIMESTAMP=$(date +"%F") BACKUP_DIR="/backup/dbs" MYSQL=/usr/bin/mysql MYSQLDUMP=/usr/bin/mysqldump mkdir -p "$BACKUP_DIR/$TIMESTAMP" databases=`$MYSQL -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema)"` for db in $databases; do $MYSQLDUMP --force --opt -u root --databases $db | gzip > "$BACKUP_DIR/$TIMESTAMP/$db.gz" done find $BACKUP_DIR/* -type d -ctime +29 -exec rm -rf {} \; echo Databases Backup Task Completed On $HOSTNAME
کار این اسکریپت این هست که از همه دیتابیسهای MySQL بکاپ گرفته، با فرمت gz فشردهسازی کرده و در مسیر زیر نگهداری میکند.
/backup/dbs
هربار اسکریپت اجرا میشه دیتابیسهای دامپ شده در یک دایرکتوری که نام اون تاریخ روز اجرای اسکریپت هست ذخیره میشن.
همچنین لاین زیر هم بدین منظور بکار رفته که بکاپهایی که 30 روز یا بیشتر از زمان ایجادشون گذشته حذف بشن تا خدایناکرده مشکل کمبود فضای دیسک هم ایجاد نشه.
find $BACKUP_DIR/* -type d -ctime +29 -exec rm -rf {} \;