shell可以做一些繁雜且重複的事,用來做數據庫備份很合適
代碼如下
#!/bin/bash
#主機
HOST=localhost
#用戶名
DB_USER=root
#密碼
DB_PWD=adminadmin
#數據庫
DBTABASE=gitea
#備份目錄
BACKUP=/root/shell/db
#當前時間作爲文件名
DATETIME=$(date +%Y_%m_%d_%H%M%S)
#創建備份的路徑
[ ! -d "$BACKUP/$DATETIME" ] && mkdir -p "$BACKUP/$DATETIME"
echo “備份路徑$BACKUP/$DATETIME 創建成功”
#執行mysql的備份數據庫指令
mysqldump -u${DB_USER} -p${DB_PWD} --host=$HOST $DATABASE | gzip > $BACKUP/$DATETIME/$DATETIME.sql.gz
echo "備份數據庫文件$BACKUP/$DATETIME/$DATETIME.sql.gz 成功"
#打包備份文件
cd $BACKUP
tar -zcvf $DATETIME.tar.gz $DATETIME
echo "打包成$DATETIME.tar.gz 成功"
#刪除臨時目錄
rm -rf $BACKUP/$DATETIME
echo "刪除臨時目錄$BACKUP/$DATETIME 成功"
#刪除10天前的備份數據
find $BACKUP -mtime +10 -iname "*.tar.gz" -exec rm -rf {} \;
echo "刪除$BACKUP目錄10天前的備份*.tar.gz數據成功"
echo "================備份文件成功==============="
再加入linux cron定時任務中,可以實現定時備份數據,而且刪除十天前的數據