32 lines
816 B
Bash
Executable File
32 lines
816 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 -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天前备份成功"
|