1. 程式人生 > 資料庫 >每天凌晨 2:10 備份 資料庫shell指令碼

每天凌晨 2:10 備份 資料庫shell指令碼

需求分析

  1. 每天凌晨 2:10 備份 資料庫 story 到 /temp/backup/db
  2. 備份開始和備份結束能夠給出相應的提示資訊
  3. 備份後的檔案要求以備份時間為檔名,並打包成 .tar.gz 的形式,比如:2021-01-19_110201.tar.gz
  4. 在備份的同時,檢查是否有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