我一开始是看到别的博客上面的教程用的GitHub备份,GitHub普通用户的私有仓库是收费的,所以我这次用国内的码云。我最初看的是这个人的文章https://lolico.moe,同时可以参照码云的帮助文档。
一、注册码云
地址是www.gitee.comhttps://gitee.com,填个邮箱就能注册了,这里就不多说,没难度
二、创建项目
这里要选private,因为我们是备份网站,所以不能让别人看到我们的源代码
项目名称随便,这里同样选择私有,语言我选择的HTML,其实随便啦。
三、本地初始化项目
首先,你需要执行下面两条命令,作为 git 的基础配置,作用是告诉 git 你是谁,你输入的信息将出现在你创建的提交中。
git config --global user.name "你的名字或昵称"
git config --global user.email "你的邮箱"
然后在你的需要初始化版本库的文件夹中执行:
cd /www/wwwroot/xxx.com //进入网站的目录
git init
git remote add origin <你的项目地址>
PS:项目地址就是你刚刚所创建的项目地址,如下图,点击复制即可
四、如何创建ssh公钥
ssh-keygen -t rsa -C "[email protected]"
[email protected]是你的邮箱,连续回车三次就可以了
查看你的 public key,并把他添加到码云
cat /root/.ssh/id_rsa.pub
把输出的复制下来,进入码云的设置
侧栏中选择ssh公钥,把刚刚复制的填进去,确定就行了
五、尝试第一次同步
cd /www/wwwroot/xxx.com //进入网站目录
git add -A //把目录下所有文件变化(增、删、改)提交到暂存区
如果你想只增、改而不删,那么可以用git add .命令代替
git commit -m "backup" //提交所有更改,这个"backup"可以随意填写,没有影响,其实就是你提交改动的时候的说明,但是 commit 的时候必须要有这个说明
ssh-agent bash //启动 SSH 密钥管理器
ssh-add /root/.ssh/id_rsa //将之前我们创建的gitee密匙文件添加到密匙管理器中
git push -u origin master //推送所有更改到 Github 项目
等待命令执行,完成可以在我的码云看到了
六、设置每天同步
实际上就是使用 crontab 定时任务每天git push一次,但是操作与上面略有不同,并且有一些需要注意的点如果你没有安装 crontab,那么百度一下安装方法自行安装,此处不再赘述
首先找个你喜欢的目录,创建一个脚本例如/root/backup_website.sh,然后写入以下内容并保存
!/bin/bash
cd /www/wwwroot/xxx.com
git add -A
git commit -m "backup"
ssh-add /root/.ssh/id_rsa
git push -u origin master
接着编辑 crontab 的配置文件,一般是/var/spool/cron/crontabs/root,在最下面加入这行,然后保存退出
30 3 * * * ssh-agent bash /root/backup_website.sh
这条 crontab 命令代表每天凌晨3:30分执行ssh-agent bash /root/backup_website.sh命令
接着重启一下 crontab 使新配置文件生效
# CentOS6 系列及以下
service crond restart
# CentOS7 系列
systemctl restart crond.service
# Ubuntu / Debian 系列
/etc/init.d/cron restart
OK这样就会每天自动同步了