shell脚本
cat > save_mysql_data.sh <<'EOF'
#!/bin/sh
path="$( cd "$( dirname "$0" )" && pwd )"
sed -i "s#database_name#$1#g" $path/handle.sh
sh $path/handle.sh
sed -i "s#$1#database_name#g" $path/handle.sh
EOF
cat > handle.sh <<'EOF'
#!/bin/sh
docker exec -it --env LANG=C.UTF-8 qjjk_mysql /bin/bash -c 'mysqldump -uroot -p123456 database_name > /home/database_name.sql'
docker cp qjjk_mysql:/home/database_name.sql ./
day=`date -d "now" +%Y-%m-%d-%H`
nf="database_name_$day.sql"
mv database_name.sql $nf
/ossutil64 cp $nf oss://bucket-test/mysql/数据备份/
rm -rf $nf
EOF
ossutil64得先配置ak,使用命令[/ossutil64 config]配置,下载ossutil64命令如下
wget https://gosspublic.alicdn.com/ossutil/1.7.13/ossutil64
备份任务(每日0点和12点)
crontab -e 添加以下任务
0 0,12 * * * sh /root/save_mysql_data.sh test
注 : main.sh必须为全路径名,参数为数据库名称,执行后会在备份并上传oss