记得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,填好Title
和Key
就OK了
建立私人仓库
自己网站嘛,肯定要私人仓库,要不然裤子都被人扒得不剩了
记得选择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
了
Linux 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的版本控制,回滚也简单。