专栏首页恩蓝脚本Linux VPS定时备份服务器/网站数据到Github私人仓库

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

2860元腾讯云代金券免费领取,付款直接抵现金,立即领取>>>

腾讯云海外服务器1折限时抢购,2核4G云主机689元/1年,立即抢购>>>

腾讯云服务器1折限时抢购,2核4G云主机689元/3年,立即抢购>>>

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

教程

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

1、配置Git SSH密钥

由于本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以必须要让github仓库认证你SSH key,在操作之前,需要先在服务器上生成SSH key。

我们先去根目录下使用命令:

cd ~
ssh-keygen -t rsa

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

cat ~/.ssh/id_rsa.pub

查看后,再复制下公钥,然后打开Github官网,进入https://github.com/settings/ssh/newTitle随便填,然后Key填入刚刚复制的密匙,最后点击Add SSH Key添加即可。

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

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

#进入需要备份的文件夹
cd /home/www.zalou.cn
#初始化你的github仓库
git init
#关联到远程github仓库
git remote add origin [email protected]:iiiiiii1/MOERATS.git

关联仓库的时候,后面可以用HTTPS链接也可以用SSH,这里强烈建议选择SSH,安全性很高。

4、初次备份

#进入备份的文件夹
cd /home/www.zalou.cn
#把目录下所有文件更改状况提交到暂存区,包括增,删,改。
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+xy保存退出。再测试下脚本,使用命令:

bash ~/gitback.sh

脚本没问题的话,再设置为每天05:15执行一次:

echo "15 05 * * * bash ~/gitback.sh" > 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 "[email protected]"

2、密匙问题

报错提示:Permission denied (publickey).

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

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

#方法二
将github密匙添加到ssh agent,比如密匙名称为github,使用命令:
ssh-agent bash
ssh-add ~/.ssh/github

总结

使用该方法备份网站是个不错的选择,不过别用来备份大文件东西,比如电影什么的,听说有限制,具体多少暂时还没测试。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

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

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

    子润先生
  • Linux vps定时备份网站文件和数据库到七牛云存储

    之前有说过Linux VPS每日自动备份FTP及数据库通过邮箱发送方法,不过需要自建FTP空间才行,较本教程有点麻烦,如果你没有FTP空间,可以申请一个七牛云存...

    青阳
  • 10 分钟带你从入门到精通的 Docker 小白实战教程

    笔者:花生 PeA,百度前端汪、ACGer。个人博客:pea3nut.blog;个人资料:pea3nut.info。

    iMike
  • 从小白到全站 Docker 化

    笔者花生 PeA,百度前端汪、ACGer。个人博客:pea3nut.blog;个人资料:pea3nut.info。

    kubernetes中文社区
  • 使用宝塔面板如何自动备份数据库和网站代码

    基础操作是:宝塔自带的定时任务当中就有备份数据库和网站代码啊?? 然后就直接选择了备份到服务器磁盘

    沈唁
  • 使用Travis CI自动部署Github/Coding Pages博客

    使用Hexo生成静态博客然后部署到Github/Coding Pages是目前我的博客的托管方式。 用起来是很爽,但是存在几个问题:

    查利鹏
  • 基于Github搭建Maven仓库的方法

    Maven 是一个项目管理和构建自动化工具, Maven仓库 是用于存放不同编译的artifacts和dependencies(依赖)的模块集合。严格而言,主要...

    飞奔去旅行
  • 手把手教你搭建一个属于自己的网站

    网站也可以理解为web应用程序,只不过无需用户下载,只要有网络,随时随地都能访问。

    游魂
  • AdGuardHome安装与配置使用指南

    https://github.com/AdguardTeam/AdGuardHome

    Erwin
  • github与gitlab与git三个基佬的故事

    我们了解了git是以个人为中心,但是人人都得数据交互呀。。python程序员每天都忙着进行py交易

    超蛋lhy
  • 新版VPS主机管理面板WDCP安装及使用体验-国产简单易用型VPS面板

    WDCP也算是国产中颇受大家欢迎的VPS主机面板了,提供了nginx、apache、mysql、php等Web建站环境一键搭建。印象中,国内VPS主机面板也就是...

    砸漏
  • 01 . GitLab简介及环境部署

    GitHub如果使用私有仓库,是需要付费的,GitLab可以在上面搭建私人的免费仓库。

    常见_youmen
  • git 入门教程之 git 私服搭建教程 原

    前几节我们的远程仓库使用的是 github 网站,托管项目大多是公开的,如果不想让任何人都能看到就需要收费,而且 github 网站毕竟在国外,访问速度太慢,基...

    雪之梦技术驿站
  • NextCloud安装和使用图文教程

    注:本部分分享的是使用Nginx来搭建和运行NextCloud,属于手动安装系列,如果你觉得麻烦你也可以使用NextCloud官方的一键安装包。参考:Nextc...

    用户8832582
  • 我搭建了一套企业级私有Git服务,抗住了每天上万次攻击!

    作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。自开源半年多以来,已成功为十几家中小型企业提供了...

    冰河
  • lnmp 如何备份网站文件和数据库

    魏艾斯博客www.vpsss.net
  • lnmp环境下如何手动备份网站文件和数据库

    我们站长做个网站都是挺不容易的,从域名注册,掌握虚拟主机或者 VPS 的基本配置,到安全防护,搭建网站、图片处理、发布文章,SEO 等等,是样样精通,不过这里面...

    魏艾斯博客www.vpsss.net
  • 搭建你自己的Arduino IOT云服务器

    如果你曾使用过一些新的支持Arduino的硬件平台进行开发,那么可能你已经在你的项目中使用了在线的IoT服务。在这篇文章中,我会演示如何通过搭建一个虚拟专用服务...

    未来守护者
  • 腾讯云服务器, 域名备案及 CDN 服务体验

    另外, 程序猿有个自己稳定的网络开发环境(程序猿开发不都是 copy from stackoverflow/Google 么, 哈哈 ?)也是极好的. 所以最终...

    程序猿石头

扫码关注云+社区

领取腾讯云代金券

http://www.vxiaotou.com