在阿里云ECS上搭建了一个小网站,用的mysql,数据库也是在ECS上安装的,这就涉及到一个数据库备份的问题,当然是定时自动备份才好。阿里云OSS提供了一种安全可靠的存储,是理想的备份存储。于是搞起来。
思路:
- 备份使用mysql自带的mysqldump
- 搞个shell脚本定时执行
- 使用阿里云提供的ossutil来上传文件
安装ossutil
我这里是64位的linux,其它版本见说明:https://help.aliyun.com/document_detail/50452.html
wget http://gosspublic.alicdn.com/ossutil/1.4.1/ossutil64
然后复制到/usr/local/bin,并设置相关权限。
cp /root/ossutil64 /usr/local/bin chmod -R 755 /usr/local/bin/ossutil64
然后运行ossutil64看看是不是安装成功了。
开通OSS
这个是有管理界面的,看阿里云的文档吧。
https://help.aliyun.com/document_detail/31884.html
创建一个bucket,名字自己随便起。
https://help.aliyun.com/document_detail/31885.html
阿里云账号权限很大,直接使用不安全,最好给OSS操作单独创建个子账号:
https://help.aliyun.com/document_detail/31867.html
编写脚本
#!/bin/sh
base_mysql_path=mysql根目录
mysql_dump_path=mysql备份文件的临时目录
#mysql-config
mysql_user="数据库用户名"
mysql_pass="数据库密码"
#oss-config
oss_endpoint="阿里云OSS Endpoint"
oss_bucket="阿里云OSS Bucket名字"
oss_accesskeyid="阿里云OSS AccessKeyId"
oss_accesskeysecret="阿里云OSS AccessKeySecret"
backup_name=`date +%Y%m%d%H%M%S`
cd ${mysql_dump_path}
#mysqldump
${base_mysql_path}bin/mysqldump -u${mysql_user} -p${mysql_pass} --all-databases > ${backup_name}.sql
#pack
tar zcf ${backup_name}.tar.gz ${backup_name}.sql
rm -f ${backup_name}.sql
#backup to 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 "备份完成"
请将上边文件中汉字的部分替换称自己的,然后将这个文件保存为dobak.sh,上传到/usr/local/mysql/backup。
注意:
1、文件的格式需要为UNIX格式,可以使用Notepad++,在“编辑”->“文档格式转换”中确认。
2、dobak.sh需要有执行权限:chmod -R 755 /usr/local/mysql/backup/dobak.sh
加入计划任务
编辑/etc/crontab,加入下边这句:
05 1 * * * root /usr/local/mysql/backup/dobak.sh
这句的意思是每天1点05分执行备份脚本,时间可以自己改,具体了解下定时器的配置。
同时在crontab头部的Path中加上/usr/local/bin:
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
然后重新加载cron配置:
service crond reload
然后就坐等备份顺利执行吧。
发表评论
相关文章
国内AI资源汇总,AI聊天、AI绘画、AI写作、AI视频、AI设计、AI编程、AI音乐等,国内顺畅访问,无需科学上网。
扫码或点击进入:萤火AI大全
文章分类
最新评论