很多情况下,我们服务器以及网站里很多数据都需要备份,按照日期备份,为了防止数据被恶意篡改,或者网站瘫痪,数据丢失等等,但是我们怎么找到一个足够大的网盘或者服务器磁盘来容纳呢?
一般情况下,本站的office365,每个用户均有1T 的硬盘空间,基本的备份够用了!
第二,可以使用无限容量的Google drive,这个磁盘每个用户最多可以创建5T的内容,基本一个网站备份足足的!
本篇教程就是基于centos7,使用Google drive来备份您的网站数据,注意由于Google drive被墙,所以国内的服务器自行解决备份问题!
编译下载
程序开源地址:https://github.com/prasmussen/gdrive
centos7本站下载地址:https://pan.echoteen.com/f/89223d1ece/
也可以自行编译:
前提是服务器必须要安装go编译软件
go get github.com/prasmussen/gdrive |
安装
以从服务器下载为例,自行编译的可以查找编译目录再运行文件
wget -O drive https://pan.echoteen.com/f/89223d1ece/?raw=1 mv drive /usr/sbin/drive chmod 755 /usr/sbin/drive |
然后在终端运行
drive |
此时应该出现一个地址,形如:
Go to the following link in your browser: https://accounts.google.com/o/oauth2/auth?client_id=123456789123-7n0vf5akeru7on6o2fjinrecpdoe99eg.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive&state=state |
这个就是你的谷歌的授权链接,在浏览器里运行后,会给你返回一个字符串,形如:
4/9gKYAFAJ326XIP6JJHAEhs342t35LPiA5QGW0935GHWHy9
然后再终端里填入
Enter verification code: 4/9gKYAFAJ326XIP6JJHAEhs342t35LPiA5QGW0935GHWHy9 |
OK,授权安装成功!
如果drive命令键入后,没有返回地址,那么看看有没有下载成功!
备份脚本
现在,我们可以把服务器上的任意文件上传到谷歌drive了,下面就是具体的上传实例,大家可以参考这个脚本给服务器整体备份或者基于某个网站文件数据库备份!
#!/bin/sh # zip the website file directory zip -P mypass -r -q "echoteen-backup-$(date '+%Y-%m-%d').zip" /home/echoteen.com/ # upload to google drive drive upload --file "echoteen-backup-$(date '+%Y-%m-%d').zip" # remove the original tar rm -rf "echoteen-backup-$(date '+%Y-%m-%d').zip" |
可以把以上的目录换成您网站的具体数据目录!
是不是很简单?
如果您要备份数据库的话
#!/bin/sh #mysqldump mkdir /home/shell/sql mysqldump -u root -ppassword wordpress>/home/shell/sql/wp.sql #password是数据库密码 # tar the mysql file directory zip -P mypass -r -q "echoteen-sql-backup-$(date '+%Y-%m-%d').zip" /home/shell/sql/ # encrypt the tar #openssl aes-256-cbc -a -salt -in "echoteen-backup-$(date '+%Y-%m-%d').tar.gz" -out "echoteen-backup-$(date '+%Y-%m-%d').tar.gz.enc" -pass 'pass:ReAlLyLoNgAnDcOmPlExPaSsWoRd' # upload to google drive drive upload --file "echoteen-sql-backup-$(date '+%Y-%m-%d').zip" # remove the original tar rm -rf "echoteen-sql-backup-$(date '+%Y-%m-%d').zip" rm -rf "/home/shell/sql" |
定时任务
echo "0 2 * * * root /scripts/sql.sh" >> /etc/crontab
数据库每天备份
echo "0 2 15 * * root /scripts/file.sh" >> /etc/crontab
网站数据每月15号备份一次就够了!
效果图
实时备份图片
这个历史文件不打算删除,就让他一直保持,反正容量是不值钱的!
https://ws1.sinaimg.cn/large/64a7d3acgy1fh7cinym2fj20y50fx79t.jpg
everything are free!!!
需要谷歌无限权限的可以私我微博~~~
via.https://www.echoteen.com/backup-to-gdrive.html