TypechoJoeTheme

Strjson博客-专注于各种精品源码、精品软件、技术教程分享、黑客技术、破解教程(爱你在心口难开、没事写一写)

统计

Linux VPS定时备份服务器/网站数据到Github私人仓库

子沫博主
2019-03-31
/
0 评论
/
1,088 阅读
/
959 个字
/
百度已收录
03/31
本文最后更新于2021年04月10日,已超过1116天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

说明:现在Github被微软收购后,私人仓库已经开始免费了,只能说微软很良心。然后就可以拿来折腾下了,让其充分发挥下作用,这里我们可以用来备份下网站或者服务器一些数据,方法就大概说下。

教程
首先你肯定需要一个Github账号,没有的可以去注册一个,地址:https://github.com。有了账号就继续看。

1、配置Git SSH密钥

由于本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以必须要让github仓库认证你SSH key,在操作之前,需要先在服务器上生成SSH key。
我们先去根目录下使用命令:

cd ~
ssh-keygen -t rsa
这里会要你命名密匙名称(这里建议使用默认名称),然后连续按几次Enter,这时候会在/root/.ssh文件夹生成2个ssh密钥,然后我们查看公钥id_rsa.pub。

cat ~/.ssh/id_rsa.pub
查看后,再复制下公钥,然后打开Github官网,进入https://github.com/settings/ssh/new,Title随便填,然后Key填入刚刚复制的密匙,最后点击Add SSH Key添加即可。
请输入图片描述

2、建立私人仓库
我们需要先访问https://github.com/new,新建一个仓库用来存放备份文件,名称自己随意,记得下面一定要勾选Private,也就是私人仓库。不然你辛辛苦苦备份的小姐姐就要被别人偷走了。
请输入图片描述

3、配置本地仓库
由于博主是用来备份网站,所以需要备份文件夹为/home/www.moerats.com,也就是把该文件夹定为本地仓库,使用命令:

进入需要备份的文件夹

cd /home/www.moerats.com

初始化你的github仓库

git init

关联到远程github仓库

git remote add origin git@github.com:iiiiiii1/MOERATS.git
关联仓库的时候,后面可以用HTTPS链接也可以用SSH,这里强烈建议选择SSH,安全性很高。
请输入图片描述

4、初次备份

进入备份的文件夹

cd /home/www.moerats.com

把目录下所有文件更改状况提交到暂存区,包括增,删,改。

git add -A

提交更改的说明,说明随意了,这里为backsite

git commit -m "backsite"

开始推送到Github

git push -u origin master
推送的时候可能会提示The authenticity of host 'github.com' can't be established.信息,直进yes即可。

然后可以看到仓库的备份文件了。
请输入图片描述

5、设置定时备份
在根目录先新建一个bash脚本:

nano ~/gitback.sh
代码如下:

!/bin/bash

进入到网站根目录,记得修改为自己的站点

cd /home/xxx.com

将数据库导入到该目录,这里以mysql为例,passwd为数据库密码,typecho为数据库名称,typecho.sql为备份的数据库文件

mysqldump -uroot -ppasswd typecho > typecho.sql
git add -A
git commit -m "backsite"
git push -u origin master
然后编辑好了后,使用ctrl+x,y保存退出。再测试下脚本,使用命令:

bash ~/gitback.sh
脚本没问题的话,再设置为每天05:15执行一次:

并将运行日志输出到根目录的siteback.log文件

echo "15 05 * bash ~/gitback.sh > ~/siteback.log 2>&1 &" > bt.cron
crontab bt.cron
rm -rf bt.cron
最后使用crontab -l命令查看添加成功没。成功的话,就基本上算完成了。

推送失败
如果你将本地文件夹推送到Github失败的话,常见原因有2种,具体如下。

1、邮件问题

报错提示: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@moerats.com"
2、密匙问题

报错提示:Permission denied (publickey).
大概的原因就是,你设置密匙的时候改成了其它名称,而ssh默认只读取id_rsa,所以会显示没权限。解决方法如下:

方法一

进入根目录的.ssh文件夹,将你的github密匙文件,重新更名为id_rsa。

方法二

将github密匙添加到ssh agent,比如密匙名称为github,使用命令:
ssh-agent bash
ssh-add ~/.ssh/github
总结
使用该方法备份网站是个不错的选择,不过别用来备份大文件东西,比如电影什么的,听说有限制,具体多少暂时还没测试。

朗读
赞(0)
赞赏
感谢您的支持,我会继续努力哒!
版权属于:

Strjson博客-专注于各种精品源码、精品软件、技术教程分享、黑客技术、破解教程(爱你在心口难开、没事写一写)

本文链接:

https://jpgke.com/jishu/43.html(转载时请注明本文出处及文章链接)

评论 (0)

互动读者

人生倒计时

今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月

360实时热点

  • 获取失败!

标签云

最新回复

  1. 试试看闲逛
    2021-12-14
  2. 555闲逛
    2021-12-07
  3. def闲逛
    2021-11-28
  4. 紫夜闲逛
    2021-11-28
  5. 666闲逛
    2021-10-05