本人有个不太好的习惯,每次项目的数据库都是在线上创建,Navicat 连接线上数据库进行处理,最近有一个项目需要二次升级,发现老项目部署的服务器到期了,完蛋,数据库咩了!!!
只能自己手动补充,唉,自作自受
现在自己写了一个开源的脚本,用来实现宝塔自动备份服务器所有数据库,备份过的数据库自动上传至gitee项目中。
最新版本v1.1新增分支处理多服务器数据信息
https://gitee.com/liudenghuix/gitSync/releases/download/v1.1/gitSync.sh
安装执行脚本:
wget https://gitee.com/liudenghuix/gitSync/releases/download/v1.1/gitSync.sh -O /usr/local/bin/gitSync && chmod +x /usr/local/bin/gitSync && gitSync
一、gitee创建数据库备份项目
![](https://img-blog.csdnimg.cn/direct/c5edc62c93204940933c7c2598c8c6f0.png)
要注意,这个项目一定是私有的,选择好后进行创建
![](https://img-blog.csdnimg.cn/direct/43a2798e97b148efb3c635ff21374c22.png)
二、宝塔开启备份所有数据库的计划任务
![](https://img-blog.csdnimg.cn/direct/86062ece5cfd4d7e96bd90151fec5220.png)
![](https://img-blog.csdnimg.cn/direct/f248de50536441f6b5b3496d127475e8.png)
创建完成之后点击一下立即执行,一会用脚本测试上传功能
三、服务器下载脚本并设置相关功能
下载安装命令
bash
wget https://gitee.com/liudenghuix/gitSync/releases/download/v1.0/gitSync.sh -O /usr/local/bin/gitSync && chmod +x /usr/local/bin/gitSync && gitSync
![](https://img-blog.csdnimg.cn/direct/743e81e93bd445c0881d8661983ee6b6.png)
看到这个画面就是安装成功了,接下来就是设置并在宝塔和gitee上进行配置了
执行 gitSync -run
1.设置你git的用户名和邮箱,这里填写你再git的邮箱和用户名就可以了
![](https://img-blog.csdnimg.cn/direct/8d6875ca9fc4427f9825fb3277434b74.png)
2.设置你这台服务器的ssh备注,这个备注用于自动上传的备注信息,这里我是用备注+服务器ip的形式作为备注的
![](https://img-blog.csdnimg.cn/direct/c3ae9b7d1b8c421aa827daac70c48300.png)
3.生成公钥完毕之后,要把公钥复制下来,在gitee中进行设置
设置完成回到设置输入y
Gitee连接检测结果: Hi 刘登辉(@liudenghuix)! You've successfully authenticated, but GITEE.COM does not provide shell access.
系统提示连接上gitee了
![](https://img-blog.csdnimg.cn/direct/5ce5b913cb9f436fb9a3ce4e681e7a21.png)
3.在gitee中添加ssh公钥完成之后需要设置一个git目录,因为宝塔备份的数据库地址是在
/www/backup/database/mysql/crontab_backup
所以我们设置 /www/backup/database/mysql/crontab_backup
![](https://img-blog.csdnimg.cn/direct/3e249fd070f34db398f60a1ea449c445.png)
设置完成之后git就会提交本地仓库
4.仓库路径设置完成之后,要设置远程的仓库的url了,在创建仓库的时候远程仓库url就已经给我们了
![](https://img-blog.csdnimg.cn/direct/dc80ca68907e435fb38616556cec6cdc.png)
git@gitee.com:liudenghuix/crontab_backup.git
设置之前我们先去看下gitee项目中有没有上传的备份文件
![](https://img-blog.csdnimg.cn/direct/43a2798e97b148efb3c635ff21374c22.png)
这个时候再设置远程仓库地址
git@gitee.com:liudenghuix/crontab_backup.git
![](https://img-blog.csdnimg.cn/direct/71deb2759b7f4c1f85f3dd63b1b837df.png)
设置完成之后脚本就会自动推送/www/backup/database/mysql/crontab_backup下面的所有数据库备份文件了
![](https://img-blog.csdnimg.cn/direct/e1bc9c9439c34f8e8bf57482bfc972bb.png)
四、宝塔设置自动定时上传
因为数据库是每天2小时30分钟开始备份的,所有延迟5分钟设置在每天2小时35分钟开始执行git上传
#!/bin/bash
gitSync -push
![](https://img-blog.csdnimg.cn/direct/7822342582d24d849fc195b53f7b39ff.png)
![](https://img-blog.csdnimg.cn/direct/9bbeac75b5cb4ab2becde345c1fcaf92.png)
添加完成之后别忘记测试一下执行,然后去gitee看看推送成功没有
![](https://img-blog.csdnimg.cn/direct/6e5996d17a8f4c9b89154a203ed412aa.png)
可以看到,初始化的时候显示的是 备注+ip初始化提交,计划任务提交的时候显示的是gitSync脚本推送外加备注信息