每天凌晨 2:10 備份 資料庫shell指令碼
阿新 • • 發佈:2021-01-19
需求分析
- 每天凌晨 2:10 備份 資料庫 story 到 /temp/backup/db
- 備份開始和備份結束能夠給出相應的提示資訊
- 備份後的檔案要求以備份時間為檔名,並打包成 .tar.gz 的形式,比如:2021-01-19_110201.tar.gz
- 在備份的同時,檢查是否有10天前備份的資料庫檔案,如果有就將其刪除。
#!/bin/bash BACKUP=/temp/backup/db DATETIME=$(date +%Y_%m_%d_%H%M%S) #echo $DATETIME echo "====================開始備份================" echo "====================備份路徑:$BACKUP/$DATETIME.tar.gz================" HOST=localhost DB_USER=root DB_PWD=root DATABASE=story #如果備份資料夾存在。就使用。不存在就建立 [ ! -d "$BACKUP/$DATETIME" ] && mkdir -p "$BACKUP/$DATETIME" #執行MySQL的備份命令 mysqldump -u${DB_USER} -p${DB_PWD} --host=${HOST} $DATABASE | gzip > $BACKUP/$DATETIME/$DATETIME.sql.gz #打包備份檔案 cd $BACKUP tar -zcvf $DATETIME.tar.gz $DATETIME #刪除臨時目錄 rm -rf $BACKUP/$DATETIME #刪除10天前的備份檔案 find $BACKUP -mtime +10 -name "*.tar.gz" -exec rm -rf {} \; echo "===============備份檔案成功===================="
crontab -e(定時任務) -l 檢視任務; -r 刪除任務;
10 2 * * * * /temp/mysql_db_backup.sh