定时备份mysql数据到OSS

安装ossutil
wget https://gosspublic.alicdn.com/ossutil/1.7.15/ossutil64

chmod +x ossutil64  # 授权

cp /root/ossutil64 /usr/local/bin
然后复制到/usr/local/bin。
编写shell脚本
#!/bin/sh 
#mysql根目录
mysql_base_path=/usr/local/mysql/
# 备份文件临时目录
mysql_dump_path=/usr/backup/sql
#mysql-config
mysql_user=XXX
mysql_pass=XXX
# oss配置
oss_endpoint=XXXX
oss_bucket=XXX
oss_accesskeyid=XXXXXX
oss_accesskeysecret=XXXXXXX
backup_name=`date +%Y%m%d%H%M%S`
#判断文件夹不存在则创建
if [ ! -d ${mysql_dump_path} ];
then     
    mkdir -p ${mysql_dump_path};
fi
cd ${mysql_dump_path}
# 使用 mysqldump 备份整个数据库到临时文件夹中
${mysql_base_path}bin/mysqldump -u${mysql_user} -p${mysql_pass} --all-databases > ${backup_name}.sql
# --ignore-table忽略掉表,需要带上database.【下面这个命令是docker执行,暂时用不到】
#docker exec root-mysql-1 sh -c 'mysqldump -uroot -p"$MYSQL_ROOT_PASSWORD" --all-databases' > ${backup_name}.sql
# 打包/pack 
tar zcf ${backup_name}.tar.gz ${backup_name}.sql
rm -f ${backup_name}.sql
# 备份到OSS
ossutil64 cp ${backup_name}.tar.gz oss://${oss_bucket}/mysql/backup/${backup_name}.tar.gz -f -e ${oss_endpoint} -i ${oss_accesskeyid} -k ${oss_accesskeysecret}
rm -f ${backup_name}.tar.gz
echo "备份完成"
 给SH文件配置权限
chmod +x /usr/dbbackup/XXX.sh
配置定时任务
//设置定时任务
crontab -e

//设置执行时间 和 执行文件的命令
0 */1 * * *  /usr/dbbackup/XXXX.sh >> /usr/dbbackup/db.log & # 一小时执行一次

//检查定时任务
crontab -l

//重新加载cron配置
service crond restart

彩蛋:

shell脚本在本地电脑编辑的,格式是dos(可以用vi编辑该shell脚本,进入命令行模式,输入:set ff 回车即可看到左下角显示fileformat=dos),在dos/window下按一次回车键实际上输入的是“回车(CR)”和“换行(LF)”,而Linux/unix下按一次回车键只输入“换行(LF)”,所以本地修改的sh文件在CentOS上运行每行都会多了一个CR,因此就会报错syntax error: unexpected end of file。

1. 我们可以查看该脚本文件的格式,方法是使用命令:vim nginx_check.sh进入编辑文件界面

2. 直接输入":",然后在":"之后输入"set ff"如下图所示

3. 我们需要把格式改为unix,方法是输入":set ff=unix",也可以输入":set fileformat=unix"如下图所示。

再次执行

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
数据备份OSS可以分为以下几个步骤: 1. 准备OSS账号和bucket 首先,您需要在阿里云官网上注册账号,并创建一个OSS bucket。在创建bucket时,请注意选择您的数据中心位置,以确保数据备份的速度和稳定性。 2. 安装OSS SDK 您需要在您的服务器上安装OSS SDK,以便您可以使用OSS API来上传和下载文件。OSS SDK的安装方法与语言有关,您可以在阿里云官网上查找相应的安装指南。 3. 编写备份脚本 您可以使用任何一种编程语言来编写备份脚本,但是最好选择一种与您的服务器操作系统兼容的语言。例如,如果您的服务器运行的是Linux系统,则可以使用Shell脚本来编写备份脚本。 在备份脚本中,您需要指定要备份数据库名称、备份文件的名称、OSS的AccessKey和SecretKey等信息。您还需要使用OSS SDK中的API将备份文件上传到OSS。 以下是一个备份MySQL数据库到OSS的Shell脚本示例: ``` #!/bin/bash # 数据库信息 DB_NAME="your_db_name" DB_USER="your_db_user" DB_PASS="your_db_password" # 备份文件名 BACKUP_FILE="your_backup_file_name.sql" # OSS信息 OSS_ENDPOINT="your_oss_endpoint" OSS_BUCKET="your_oss_bucket" OSS_ACCESS_KEY="your_oss_access_key" OSS_SECRET_KEY="your_oss_secret_key" # 备份数据mysqldump -u ${DB_USER} -p${DB_PASS} ${DB_NAME} > ${BACKUP_FILE} # 上传备份文件到OSS ossutil cp ${BACKUP_FILE} oss://${OSS_BUCKET}/ --endpoint ${OSS_ENDPOINT} --access-key-id ${OSS_ACCESS_KEY} --access-key-secret ${OSS_SECRET_KEY} ``` 4. 设置定时任务 为了确保数据备份的及时性和稳定性,您需要将备份脚本设置为定时任务。在Linux系统中,您可以使用crontab命令来设置定时任务。例如,您可以将备份脚本设置为每天凌晨2点执行一次: ``` 0 2 * * * /path/to/your/backup/script.sh ``` 以上就是将数据备份OSS的步骤。需要注意的是,数据备份是非常重要的,建议您将备份文件保存在多个地方,以应对各种意外情况。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值