在日常運維工作中,數(shù)據(jù)庫備份是確保數(shù)據(jù)安全的重要環(huán)節(jié)。通過編寫Shell腳本,我們可以實現(xiàn)自動化備份,提高工作效率并減少人為錯誤。
#!/bin/bash
# 數(shù)據(jù)庫配置
DB_HOST="localhost"
DB_USER="root"
DB_PASS="your_password"
DB_NAME="your_database"
# 備份目錄配置
BACKUP_DIR="/backup/mysql"
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="$BACKUP_DIR/${DB_NAME}_$DATE.sql"
# 創(chuàng)建備份目錄
mkdir -p $BACKUP_DIR
# 執(zhí)行備份命令
mysqldump -h $DB_HOST -u $DB_USER -p$DB_PASS $DB_NAME > $BACKUP_FILE
# 檢查備份是否成功
if 【 $? -eq 0 】; then
echo "數(shù)據(jù)庫備份成功: $BACKUP_FILE"
# 刪除7天前的備份文件
find $BACKUP_DIR -name "*.sql" -mtime +7 -exec rm {} \;
else
echo "數(shù)據(jù)庫備份失敗"
exit 1
fi
這個腳本實現(xiàn)了以下功能:
建議將腳本設(shè)置為定時任務(wù),例如通過crontab每天自動執(zhí)行:
# 每天凌晨2點執(zhí)行備份 0 2 * * * /path/to/your/backup_script.sh
通過這種方式,我們可以確保數(shù)據(jù)庫得到定期備份,同時在備份文件過多時自動清理舊文件,既保證了數(shù)據(jù)安全又節(jié)省了存儲空間。