网站内容自动备份到github

网站内容基本每天都会更新,放在服务器担心服务器不稳定,考虑每天将网站和数据库备份到github私有仓库,保证安全性

新建github项目

添加一个备份网站,首先需要在github新建一个仓库,注意将仓库设为私有,避免站点内容泄漏

https://github.com/new
图片[1]-网站内容自动备份到github - 乐享小栈-乐享小栈

安装git并添加访问github权限

首先在站点所在服务器安装git,网上很多教程,linux中安装只需要一条命令

sudo apt install git

配置用户信息

git config --global user.name "Your Name"
git config --global user.email "you@example.com"

然后生成ssh秘钥,作为服务器访问github的权限认证

ssh-keygen -t rsa
图片[2]-网站内容自动备份到github - 乐享小栈-乐享小栈

要你输入 passphrase 的时候直接不输入回车就行,完成后会有类似这样的显示,并且你会在家目录下.ssh文件夹中得到id_rsa和id_rsa.pub这两个文件

id_rsa.pub文件内容,然后回到你的 Github页面,点右上角头像,Settings,左边“SSH and GPG keys”,右上角“New SSH key”,将刚才复制的内容粘贴到“Key”输入框中,上方的“Tittle”自己随意输入,然后“Add SSH key”

图片[3]-网站内容自动备份到github - 乐享小栈-乐享小栈

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

为什么用 SSH 方式而不用 HTTPS 方式?

HTTPS 方式是要你输入用户名密码的,虽然你可以直接将用户名密码输入到链接中,像这样https://yourname:password@github.com/name/project.git,但是在链接中明文输入用户名密码是极不安全的,容易被监听窃取

初始化站点git仓库

进入需要备份的网站根目录,初始化git仓库,并添加远端库地址,这个地址就是你新建的github仓库地址

git init
git remote add origin git@github.com:xxxx/xxx.git

同步脚本

在www目录下新建一个backup2github目录,将所有脚本放在这个目录下便于管理,实际操作当然放哪里都可以 backup_xxx.sh

#!/bin/bash
#修改:实际需要备份的网站目录
cd /www/wwwroot/xxx
#修改:备份数据库。注意数据库文件需要设置权限,避免被访问!
mysqldump --no-tablespaces -u user -ppass dbname > github_backup_site.sql
git add -A
git commit -m "backup"
#删除备份的数据库文件,更加安全
rm -f ./github_backup_site.sql
git push -u origin master
Warning: Using a password on the command line interface can be insecure.
mysqldump: Error: 'Access denied; you need (at least one of) the PROCESS privilege(s) for this operation' when trying to dump tablespaces

最后为脚本添加可执行权限

chmod +x ./backup_xxx.sh  #修改:实际文件名

权限设置

在站点根目录下备份的的数据库文件,和.git目录下的文件,需要在服务器中设置权限,禁止访问,这里以Nginx为例,在配置文件中,添加

location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
{
    return 404;
}
location ~* \.sql$ {    
    deny all;    
}

添加完成之后,网站需要重启,使配置文件生效

添加定时执行任务

在设置脚本执行前,先手动提交一次,避免首次提交的一些问题。

定时任务的实现,可以直接在命令行使用crontab,网上很多教程,搜索crontab添加定时任务即可。

这里使用宝塔面板,为了便于管理,在宝塔面板中添加定时任务

宝塔后台,计划任务中添加

图片[4]-网站内容自动备份到github - 乐享小栈-乐享小栈

© 版权声明
THE END
喜欢就支持一下吧
点赞11赞赏 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容