使用Github.Com作为网站数据备份仓库

  • 使用Github.Com作为网站数据备份仓库已关闭评论
  • 212 views
  • A+
所属分类:编码

前言

无论是任何网站、任何站长,对于网站数据的重要性肯定都有一定的了解,而作为站长的我们,对于数据的备份是必须提高到最高级别的重视程度。

如果关注过康康的朋友,应该知道康康之前使用过七牛、阿里等进行数据存储,目前使用的腾讯COS进行数据存储,而且康康的数据都是每天一次备份,自己编写了一个Python脚本,通过Cron进行自动执行。

这样的操作,是完全保证了数据丢失情况下,能够确保回复到最新的数据信息,避免因各种原因导致的网站数据丢失后无法恢复的尴尬。

而就目前来说,因为腾讯的COS已经确认要收费(虽然老用户暂时不受影响),作为穷屌丝的康康来说,收费的东西是能避免就避免的,所以康康又想更换一个备份基地了!

正巧在Rat's Blog看到了一篇使用Github作为数据备份的文章,测试了一下,的确很不错,就是国内连接速度稍微慢了点,但关键是安全,所以康康将自己的数据备份转移到了Github上。

不过在使用Github作为备份之前,请先确认自己的备份数据不超过1G大小,且单个文件不大于100M,原因嘛,Github上有说明,若存储仓库达到1GB,会收到Github的礼貌邮件,要求减少仓库大小,而单个文件大于50M会在提交时警告,大于100M则直接拒绝提交。

Github配置

要在Github中配置数据自动备份,要先进行一些基本的操作,首先咱们要理解Github的提交方式分为两种,一种是https方式提交,一种是ssh方式提交,两种方式都能够将自己的代码提交到Github仓库中。

https提交时,每次都要输入账号和密码(也许康康OUT了,可能有不用每次输入的方式),所以弃用此种方式,选用了ssh提交方式,因为ssh提交方式能够使用ssh证书进行验证,无需输入账号密码,这对于编写脚本自动提交是有很大好处的!

Git安装

要使用Github,必须要确保服务器上安装有git软件,因为Github就是使用git进行项目管理,安装的方式多种多样,康康是FreeBSD系统,直接使用pkg进行安装。

安装完成后,请初始化git邮箱及用户名。

请确保usebsd与您的Github账号相同,确保admin@usebsd.com与您的Github邮箱相同。

SSH证书生成

我们需要生成一份ssh证书,用以在提交的时候使用证书验证,无需输入账号密码,在生成证书前,请确保所使用的服务器账号为备份账号,且拥有相应的访问权限,并确保账号拥有使用git的权限,这里康康使用root账号进行证书生成。

遇到输入直接回车,完成后在/root下会生成一个.ssh目录,目录中有两个文件id_rsaid_rsa.pub,咱们查看id_rsa.pub的文件内容。

并复制文件中的内容进行留存。

Github证书配置

打开Github并登录账号,在设置中进行ssh证书配置,网址是:https://github.com/settings/keys,点击New SSH key按钮,在Title中随便起一个名字,在Key中将刚才复制的id_rsa.pub文件内容粘贴进行并点击Add SSH key保存。

Github仓库建立

打开https://github.com/new,填写仓库名称,并在下方选择Private,这就是创建隐私仓库,毕竟自己的网站数据肯定不能让别人看到的!

创建完成后,在本地服务器创建仓库目录,比如这里康康准备将备份数据保存在/data/backup目录中,则执行命令:

其中git@github.com:usebsd/backup.gitGithub给出的ssh提交地址,usebsd是用户名,backup.git则是仓库。

首次提交

在创建自动脚本提交之前,请先手动提交一次,因为首次提交是需要有个确认动作的,在自动脚本里懒得弄提交确认。

这时可能会有一个The authenticity of host 'github.com' can't be established.的提示,直接yes确认即可,提交完成后,回到Github中,刷新页面看看,仓库里已经有了一个README.md文件了,证明咱们提交成功了。

若提交出现错误,请参考以下解决方案:

报错提示:Your push would publish a private email address.
方法一,如果你想一直保持私密,可以选择方法二
访问https://github.com/settings/emails,将Keep my email address private的勾去掉。
方法二
1、访问https://github.com/settings/emails,将Block command line pushes that expose my email的勾去掉。
2、设置你的github邮箱,修改成自己的再运行命令:
git config --global user.email "admin@usebsd.com"

报错提示:Permission denied (publickey).
方法一
进入根目录的.ssh文件夹,将你的github密匙文件,重新更名为id_rsa。
方法二
将github密匙添加到ssh agent,比如密匙名称为github,使用命令:
ssh-agent bash
ssh-add ~/.ssh/github

自动脚本

当首次提交没有任何问题后,咱们就可以使用自动脚本进行每日备份,自动脚本适用于FreeBSD系统,Linux系统未进行测试

将脚本保存为github.sh文件,存放位置任意,比如康康存放在/root/github.sh,并给予可执行权限:

接下来咱们执行一次脚本,测试是否可以正常备份:

若无意外,脚本会自动导出数据库文件并压缩为tgz格式,自动将网站文件打包为tgz格式,并使用当前日期进行重命名,保存到/data/backup目录下,之后通过git提交到Github仓库之中,咱们到自己的仓库中刷新一下页面,应该可以看到自己的备份数据了。

创建自动执行

脚本能够正常运行并备份提交,并不意味着已经完成,因为它并不会自动执行,咱们还需要通过系统自带的cron定时任务功能进行自动执行配置。

将光标通过上下左右按键移动到最后,并按下i键,在下面添加一行内容:

添加完成后,按下Esc键,并输入:x回车进行保存,为了保险起见,重启一次定时任务服务。

这样,在每天凌晨2点时,将会自动执行一次备份任务,并将执行过程输出到/root/backup.log文件中,作为日志进行记录。

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin