工具介绍
我们做完一个项目正式上线后,生产环境的数据是很重要的,因此有必要定时备份数据库。这里推荐一款安装和配置都很简单的备份工具—gobackup。
gobackup是基于go语言开发的,作者也写了相关的帖子介绍。我也是看了这篇帖子之后,试用了一下,发现确实简单好用。鉴于ruby圈的小众,因此在这里也写篇文章,记录下如何使用,让大家也多一个可选择的备份工具。
是否满足你的需求?
gobackup目前支持的数据库有: MySQL
,PostgreSQL
,Redis
,MongoDB
,存储的方式有: Local
,FTP
,SCP
,Amazon S3
,Aliyun OSS
在项目中,我使用的数据库是postgresql, 我的数据库也准备备份到Aliyun OSS上,因此是满足我的需求的。
工具的安装
1 | $ curl -sSL https://git.io/gobackup | bash |
工具默认安装在/usr/local/bin/gobackup
,可以看下工具的版本,看看是否安装成功
1 | $ gobackup -v |
相关的配置
gobackup默认会去寻找~/.gobackup/gobackup.yml
,/etc/gobackup/gobackup.yml
这两个配置文件,因此我们可以选择其中的一个去编辑我们的配置。
这里贴下我的配置文件~/.gobackup/gobackup.yml
1 | # 基本节点,描述有多少个备份方案 |
如果你要备份文件夹或者备份其它数据库,可以参考更加详细的配置
执行备份
1 | $ gobackup perform |
通过这个命令,就手动完成了一次备份操作。但是真正的线上数据,是需要定时备份的,因此得加上定时任务。
定时备份
使用Crontab做定时任务,如何设置可以参考我的上一篇文章使用 logrotate 分割日志
查看定时任务1
2$ crontab -l
0 0 * * * /usr/local/bin/gobackup perform >> ~/.gobackup/gobackup.log
这个配置是每天凌晨0点执行一次任务,如果你想要在其它的时间定时执行,可以参考下crontab定时任务的介绍
注意事项
- 使用阿里云oss的时候,如果你的服务器和 oss都在阿里云,则强烈推荐使用内网节点,上传速度非常快。
- 注意配置的时候
bucket
是你的bucket的名称,不是bucket域名。