Wodrei

利用Github私人仓库备份网站
前言 说明:在Github被微软收购后,个人账号也可以使用私人仓库了,虽然只有3个协作者,但也是相当良心了。本来想...
扫描右侧二维码阅读全文
12
2019/01

利用Github私人仓库备份网站

前言

说明:Github被微软收购后,个人账号也可以使用私人仓库了,虽然只有3个协作者,但也是相当良心了。本来想着可以利用私人仓库做些什么,刚好看到Rat's大佬发了利用Github私人仓库备份网站的教程,就自己试了一下顺便在这里做一下记录。

本文原文出自Rat's Blog的Linux VPS定时备份服务器/网站数据到Github私人仓库

教程

没有Github账号的先去注册一个,传送门

1.配置Git SSH密钥

使用命令:

cd ~
ssh-keygen -t rsa

询问的选项全部保持默认,密钥文件不要改名,一路回车就行。然后会在/root/.ssh文件夹生成2个ssh密钥,然后我们查看公钥id_rsa.pub

cat ~/.ssh/id_rsa.pub

查看后复制内容,注意复制完全,公钥以ssh-rsa开头。进入https://github.com/settings/ssh/newTitle随便填,Key填入刚刚复制的密钥,最后Add SSH Key添加即可。

2.建立私人仓库

访问https://github.com/new,新建一个仓库,名称随意。仓库类型一定选Private才是私人仓库。

3.配置本地仓库

进入需要备份的文件夹,定为本地仓库。

#进入需要备份的文件夹,注意替换为自己的
cd /home/wwwroot/www.wodrei.com
#初始化你的github仓库
git init
#关联到远程github仓库,替换为自己的地址
git remote add origin git@github.com:Wodrei/Wodrei.git

4.初次备份

注意事项

邮件如果设置私密可能会推送失败,需要提前设置一下
方法一
如果你想一直保持私密,可以选择方法二
访问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@wodrei.com"

推送过程

#进入需要备份的文件夹,注意替换为自己的
cd /home/wwwroot/www.wodrei.com
#如果需要备份数据库,以MySQL为例,passwd为数据库root密码,typecho为数据库名称,typecho.sql为备份的数据库文件
mysqldump -uroot -ppasswd typecho > typecho.sql
#把目录下所有文件更改状况提交到暂存区,包括增,删,改。
git add -A
#提交更改的说明,说明随意
git commit -m "Backup Site"
#开始推送到Github
git push -u origin master

推送的时候如果提示The authenticity of host 'github.com' can't be established.信息,直输入yes即可。

5.定时备份

创建备份脚本

vi ~/backup_git.sh

代码如下:

#!/bin/bash
#进入到网站根目录,记得修改为自己的站点
cd /path of website
#将数据库导入到该目录,这里以MySQL为例,passwd为数据库密码,typecho为数据库名称,typecho.sql为备份的数据库文件
mysqldump -uroot -ppasswd typecho > typecho.sql
git add -A
git commit -m "Backup Site"
git push -u origin master

保存后使用命令添加执行权限

chmod +x ~/backup_git.sh

添加crontab任务,每天凌晨1:00执行备份

crontab -e
#输入以下内容
0  1 * * * /bin/bash /root/backup_git.sh
Last modification:January 12th, 2019 at 09:03 am
If you think my article is useful to you, please feel free to appreciate

Leave a Comment