60行代码实现mysql数据库自动备份并上传至阿里云OSS、腾讯云COS、七牛云等平台

文件上传至云平台基于企业开发者平台(www.21ds.cn)实现

bash脚本内容如下:

#!/bin/bash

# 定义数据库信息
DB_USER="root"
DB_PASS="root123"
DB_NAME="gxxxxs"
# 定义企业开发者平台上传信息
fs_id="FS485xxxxx3"
fc_id="FC48xxxx0"
dev_key="DEV-a3xxxxf8b"
secret="test"

# 定义备份文件名
BACKUP_FILE="$(date +%Y-%m-%d_%H-%M)_${DB_NAME}.sql"

# 备份数据库
mysqldump -u ${DB_USER} -p${DB_PASS} ${DB_NAME} > ${BACKUP_FILE}

# 压缩备份文件
tar -czvf ${BACKUP_FILE}.tar.gz ${BACKUP_FILE}

# 删除原始备份文件
rm ${BACKUP_FILE}


devSignGeneral() {
  declare -A data=(
    [fs_id]=${fs_id}
    [fc_id]=${fc_id}
    [dev_key]=${dev_key}
)
  # Remove the 'sign' key from the data
  unset 'data[sign]'
  local sorted_keys=($(echo "${!data[@]}" | tr ' ' '\n' | sort -n)) # sort keys in ascending order
  local query_string=""
  for key in "${sorted_keys[@]}"; do
    query_string+="${key}=${data[$key]}&" # concatenate key-value pairs with &
  done
  query_string="${query_string::-1}"
  query_string+=$secret
  # Generate the signature using the SHA256 algorithm
  signature=$(echo -n "$query_string" | sha256sum | awk '{print $1}')
  # # Return the signature
  echo $signature
}


# Call devSignGeneral function to generate sign
sign=$(devSignGeneral)


# 使用curl上传上文中生成的sql文件
curl -F "file=@${BACKUP_FILE}.tar.gz" "https://21ds.cn/file/upload?fs_id=${fs_id}&fc_id=${fc_id}&dev_key=${dev_key}&sign=${sign}"


# 删除备份文件
rm ${BACKUP_FILE}.tar.gz

将此脚本放数据库服务器上执行,即可将数据库上传到远程oss。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值