注:原文出处在这里哦原文链接

准备

a、github 账户

b、网站服务器

1、开始

然后接下来是在服务器上的操作:

进入一个你喜欢的安全的目录,此处直接以 /root为例

参考下命令创建一个 RSA 密匙

cd /root
ssh-keygen -t rsa

然后根据提示输入生成密匙的文件名,此处举例输入 github,要你输入 passphrase 的时候直接不输入回车就行
完成后会有类似这样的显示,并且你会在当前目录下得到 githubgithub.pub这两个文件;
接着用 cat命令查看 github.pub文件的内容,并复制下来

cat github.pub

回到你的 Github 页面,点右上角头像,Settings,左边“SSH and GPG keys”,右上角“New SSH key”

然后将刚才复制的内容粘贴到“Key”输入框中,上方的“Tittle”自己随意输入,然后“Add SSH key”

这样事前准备就完成了,嗯,其实就是加一个 SSH 密匙到 Github,这样可以方便后续 Github 项目的同步

2、创建一个私密 Github 项目

直接右上角新建项目

3、在你的站点目录下初始化你的 Github 项目

进入你的站点所在目录,并执行一系列 git 初始化命令,参考以下代码

假设我的网站在 /www/wwwroot/xxx.com,Github 项目为 xiaoyanggo/test

cd /www/wwwroot/xxx.com
git init
git remote add origin [email protected]:xiaoyanggo/test.git

4、尝试同步当前站点到 Github 项目

cd /www/wwwroot/xxx.com
git add -A
git commit -m "backup"
ssh-agent bash
ssh-add /root/github
git push -u origin master -f #原文作者没有加-f导致同步失败,加上-f解决。

命令解释

  1. 进入网站目录
  2. 把目录下所有文件变化(增、删、改)提交到暂存区
    如果你想只增、改而不删,那么可以用git add .命令代替
  3. 提交所有更改,这个"backup"可以随意填写,没有影响,其实就是你提交改动的时候的说明,但是 commit 的时候必须要有这个说明
  4. 启动 SSH 密钥管理器
  5. 将之前我们创建的github密匙文件添加到密匙管理器中
  6. 推送所有更改到 Github 项目

5、设定每天自动同步

使用 crontab 定时任务每天 git push一次

首先找个你喜欢的目录,创建一个脚本例如 /root/backup_website.sh,然后写入以下内容并保存

#!/bin/bash
cd /www/wwwroot/xxx.com
git add -A
git commit -m "backup"
ssh-add /root/github
git push -u origin master -f

可以把数据库也放在脚本一起备份,数据库备份语句在最下面哦

接着编辑 crontab 的配置文件,crontab -e,然后保存退出

30 3 * * * ssh-agent bash /root/backup_website.sh

这样每天凌晨3:30的时候就会自动备份你的网站到 Github了

题外话:由于本博主使用的是mysql数据库,所以是mysql数据库备份命令和思路!有需要备份数据库的把下面的脚本修改,放到上面的自动备份脚本就可以了。
#!/bin/bash
DATE=`date +%Y-%m-%d`  #现在的时间
DATE1=`date +%Y-%m-%d --date='-7 day'` #设定一个需要删除的时间,我这里设置的的7天以前的删除
mysqldump -u数据库用户名 -p密码 数据库名字 > /www/wwwroot/sqlbackup/typecho.sql.${DATE} #备份到网站目录下的sqlbackup文件夹
rm -rf /www/wwwroot/sqlbackup/typecho.sql.${DATE1} #删除7天之前的备份文件
Last modification:August 29th, 2020 at 11:30 am
如果觉得我的文章对你有用,请随意赞赏