记得Github没被巨硬收购的时候,私人仓库还是要收费的。现在收购后个人可以免费试用了,不知道巨硬葫芦里卖的什么药。反正先嫖着,来定时备份自己的网站数据吧,要不每次手动备份实在是很麻烦。

流程

生成SSH Key

登录服务器,在根目录下执行命令

ssh-keygen -t rsa

全部默认,就在/root/.ssh目录下生成了两个SSH Key,然后查看公钥id_rsa.pub

cat ~/.ssh/id_rsa.pub

复制下公钥,然后打开Github官网,进入https://github.com/settings/ssh/new,填好TitleKey就OK了

建立私人仓库

自己网站嘛,肯定要私人仓库,要不然裤子都被人扒得不剩了

记得选择Private私人仓库

Private

配置本地仓库

为了备份自己的Typecho博客网站,所以我备份的文件夹是/www/wwwroot/ryushane.top/

将其定为本地仓库,使用如下命令

#进入需要备份的文件夹
cd /www/wwwroot/ryushane.top/
#初始化你的github仓库
git init
#关联到远程github仓库
git remote add origin git@github.com:ryushane/ryushane.top.git

HTTPS/SSH用哪个都行,这我选SSH

resLinux VPS自动备份服务器数据到Github私人仓库.assets/20191107215743.png)

开始第一次备份

#进入备份的文件夹
cd /www/wwwroot/ryushane.top/
# add 全部更改
git add -A
#commit
git commit -m "backsite"
#push
git push -u origin master

重头戏来了,定时备份

搞个脚本

vim ~/backblog.sh
#!/bin/bash
#进入到网站根目录,记得修改为自己的站点
cd /www/wwwroot/ryushane.top/
#将数据库导入到该目录,这里以mysql为例,passwd为数据库密码,typecho为数据库名称,typecho.sql为备份的数据库文件。
mysqldump -uroot -ppasswd typecho > typecho.sql
git add -A
gooit commit -m "backsite"
git push -u origin master

记得运行脚本测试一下

bash ~/backblog.sh

成功的话就用crontab设置定时执行,凌晨随便一个时间都行,这里就05:15

#并将运行日志输出到根目录的siteback.log文件
echo "15 05 * * * bash ~/backblog.sh > ~/backblog.log 2>&1 &" > bt.cron
crontab bt.cron
rm -rf bt.cron

最后使用crontab -l查看命令是否成功。如果成功就OK了,不用每次自己手动备份了,有Git的版本控制,回滚也简单。

corntab

参考文章

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

Last modification:November 8, 2019
恰饭环节