autoDeploy/backUpDB.sh
2025-03-11 08:52:19 +08:00

43 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
dbUser=$1
dbPassword=$2
dbHost=$3
dbPort=$4
dbName=$5
backUpPath=$6
ossPath=$7
hostName=$(echo $HOSTNAME)
PATH=PATH:/usr/bin:/usr/sbin:/usr/local/bin
check_port() {
nc -z -w5 $dbHost $dbPort
}
cd /tmp
rm ${hostName}_${dbName}.sql_bak3.tar.gz -f || true
mv ${hostName}_${dbName}.sql_bak2.tar.gz ${hostName}_${dbName}.sql_bak3.tar.gz -f || true
mv ${hostName}_${dbName}.sql_bak1.tar.gz ${hostName}_${dbName}.sql_bak2.tar.gz -f || true
mv ${hostName}_${dbName}.sql.tar.gz ${hostName}_${dbName}.sql_bak1.tar.gz -f || true
sed -i 's/lower_case_table_names=1/lower_case_table_names=0/g' /root/mysql/conf/append.cnf
if check_port; then
echo "端口 $dbPort 是活跃的,一切正常。"
else
echo "警告:端口 $dbPort 不活跃,请检查数据库连接。"
docker restart maria
sleep 10
fi
/usr/bin/mysqldump -R --opt --protocol=TCP --user="${dbUser}" --password="${dbPassword}" --host="${dbHost}" --port=${dbPort} ${dbName} >/tmp/${hostName}_${dbName}.sql
sed -i 's/lower_case_table_names=0/lower_case_table_names=1/g' /root/mysql/conf/append.cnf
rm sql -fr || true
mkdir sql
mv ${hostName}_${dbName}.sql sql
tar -czvf ${hostName}_${dbName}.sql.tar.gz sql
cp /tmp/${hostName}_${dbName}.sq*.tar.gz ${backUpPath} -f
#echo "ossPath: "${ossPath}
#ossutil cp ${dbName}.sql.tar.gz oss://${ossPath}/ -