在阿里云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大全
文章分类
最新评论