autoDeploy/backup.sh
zhangkun9038@dingtalk.com 3443277e59 opt
2023-05-26 16:29:59 +08:00

32 lines
847 B
Bash
Executable File

#!/bin/bash
# 获取当前日期和时间
current_date=$(date +%Y-%m-%d)
current_time=$(date +%H:%M:%S)
userName=$1
password=$2
dbName=$3
host=$4
backUpPath=$5
# 备份文件名
backup_file="${dbName}_backup_${current_date}.sql"
echo "backup_file: "${backup_file}
mkdir ${backUpPath} -p || true
# 备份MySQL数据库
mysqldump --column-statistics=0 -R --opt -u${userName} -p"${password}" -h${host} ${dbName} > ${backUpPath}/"$backup_file"
cd ${backUpPath}
rm sql -rf || true
mkdir sql || true
mv ${backup_file} sql/
tar -czvf ${backup_file}".tar.gz" "sql/"
rm -fr sql
#
#删除10天前的备份
delete_date=$(date -d "10 days ago" +%Y-%m-%d)
delete_file="${dbName}_backup_${delete_date}.sql.tar.gz"
rm ${backUpPath}/"$delete_file"
# 输出日志
echo "[$current_date $current_time] 执行${dbName}数据库备份并删除10天前备份成功"