登录
  • 人们都希望被别人需要 却往往事与愿违
  • 全中国只有一所学校, 就是党校 -- 其它的学校都是分校!@陈丹青 (艺术家)

[新手向]自动备份网站及数据库至七牛云存储

Linux Benny小土豆 7614次浏览 3129字 6个评论
文章目录[显示]
这篇文章在 2016年07月27日20:21:44 更新了哦~

昨天一激动,就写了个自动删除、压缩Apache日志的脚本。今天更激动,就写了个利用七牛云存储备份网站的脚本。其实都是简单的不能再简单的了,哎~~

七牛云存储对待标准用户(通过身份认证即可)提供10G存储空间、10G下载流量、10万Put、100万Get,一般应用是够了~如果看官你是高校在校学生,那么还可以申请"青葱计划",之后更是有一年期1000元七牛抵用券,想用完都没门了!

 

零。适用条件

凡是用LAMP、LNMP建站的都可以~其实,只要数据库是MySQL就可以。因为在脚本里使用了mysqldump,其他数据库可能要换成别的命令。

 

一。为啥要备份呢

一般博客,咱不太可能天天备份,没必要而且还占用空间。咱就采取七天为一个周期、以日期作为备份文件名的周期性备份。要是话唠还可以改成三天、两天一备份,这都是后面一个数字的问题。

备份的意义有多重要就不说了,那些不懂得备份的人都是在丢了数据之后从自杀边缘走回来才懂得此条真理的~

为了防止VPS服务商宕机、或者跑路、或者某天自己折腾完蛋了恰巧没做快照甚至是VPS提供商不提供快照功能,做备份是十分必须的。七牛和你的VPS同时挂了那就去买个彩票吧,做啥博客站呀~

而且,我常常说,“懒人创造了世界”。你看卡尔·本茨那家伙不就偷懒不爱走路吗发明了汽车,你看莱特兄弟不就是嫌弃汽车啥的太慢就发明了飞机吗。我不就是嫌弃手工打包、下载、上传费事吗,就写了个这么个小脚本。

 

二。准备工作

1.七牛云存储账号一个

http://www.qiniu.com/

建议新建一个私有空间,仅在恢复数据的时候再切换到公开空间免得泄露网站文件。

[新手向]自动备份网站及数据库至七牛云存储

2.整理好MySQL的账号密码。一般来说VPS上用户名就是root,密码我不知道哟

3.想明白要备份的网站目录在哪里

三。Here we go

假设网站目录在/home/wwwroot,phpmyadmin在/home/wwwroot/phpmyadmin/

在/home下创建一个wwwbackup作为备份文件夹,qiniu作为七牛同步工具文件夹。

mkdir /home/wwwbackup
mkdir /home/qiniu

切换到qiniu目录,下载七牛Linux同步工具。

2016年7月27日更新
七牛官方已经停止开发qrsync,可以使用qshell替代。
详情见参考《使用海外vps中转Google Drive文件》

本着不留垃圾的原则我就rm了下。32位64位不通用,请自行切换

本次以32位为例说明。(64位下载点这 

cd /home/qiniu/
wget http://devtools.qiniu.com/qiniu-devtools-linux_386-current.tar.gz
tar xvf qiniu-devtools-linux_386-current.tar.gz
rm -f qiniu-devtools-linux_386-current.tar.gz

建立配置文件(在/home/qiniu/下)

nano conf.json

输入如下内容保存:其中accesskeysecret keybucket请自行去https://portal.qiniu.com/setting/key获取并替换。

 

{
    "src": "/home/wwwbackup",
    "dest": "qiniu:access_key=2delala不给看啦啦啦alalalLdfz&secret_key=UtqLN啦啦啦啦啦不给看fB3cuo4z9-qmcmOwAq8YFO3PKnvClJfTOHM&bucket=blog-backup",
    "debug_level": 1
}

给qrsync增加可执行权限。

chmod +x qrsync

切换到上层目录,创建备份脚本。

cd ..
nano backup.sh

内容如下:

#!/bin/sh
rm /home/wwwroot/default/phpmyadmin/save/*
mysqldump -u root -p ohyeah --password=123456789 > /home/wwwroot/default/phpmyadmin/save/`date +%Y%m%d`.sql
tar -jcpf /home/wwwbackup/`date +%Y%m%d`.tar.bz2 /home/wwwroot >/dev/null 2>&1
/home/qiniu/qrsync /home/qiniu/conf.json

Ctrl + X 退出保存。

考虑到某些小伙伴可能喜欢有个备份日志,那就用echo重定向下好啦~~

2016-02-07补充
如果手里还有另一台VPS,那么也可以顺手给上传到另一台VPS上,命令如下(注意第一次连接需要手动打yes)
scp -i 私钥 /home/wwwbackup/`date +%Y%m%d`.tar.bz2 用户名@公网IP:/home/blog-backup

参数说明:

mysqldump:其中-p 后面ohyeah为要备份的数据库名字,-u 为用户名,一般来说就是root,--password=为密码。/home/wwwroot/default/phpmyadmin/save/为导出数据库备份文件的存储路径。

考虑到随着时间的增长,某个数据库的冗余备份也越来越多,所以采取了先清空原来已有备份、再重新到处对应数据库的方法。

tar:打包网站目录。后面的 >/dev/null 2>&1意思是我要把输出丢到黑洞里~~

如果要给压缩包加密码,那么就用

cd /home/wwwbackup/
tar -jcpf /home/wwwroot |openssl des3 -salt -k secretpassword | dd of=`date +%Y%m%d`.des3

解包用

dd if=test.des3 |openssl des3 -d -k secretpassword|tarzxf -

请注意test.des3为压缩包名字,secretpassword为密码

 

这是我的目录结构,不要嘲笑我怎么没加vhost用了个丑丑的default,

[新手向]自动备份网站及数据库至七牛云存储

四。测试

sh /home/backup.sh

本终端没反应就对了。因为我把tar的输出都丢到黑洞里了,只有qrsync的输出暂时给我们测试用。另开一个ssh看top和nethogs即可知道运行状态。

博主俺又忘记截图了。

五。添加cron

crontab –e

最后一行添加如下内容:

0 0 */7 * * sh /home/backup.sh

如果想10天一次,就把7改成10即可。将会在每隔七天0时0分(考虑到此时大家都在睡觉,降低服务器负载)压缩网站目录、上传到七牛云。

重启cron

service cron restart

本次任务成功完成。

来看看上传时的动态

[新手向]自动备份网站及数据库至七牛云存储

nethogs忘记截图了哈哈哈。平均速度在1M~2.5M的样子,我的服务器在日本东京。这个速度很棒的了,看看Node Query的记录吧!

[新手向]自动备份网站及数据库至七牛云存储

六。后话

童鞋们记得灵活的变换目录哦,这是作为Geeker最基本的素质了~

另外,假如七牛标准用户还觉得不够用,还不想付钱,那么也可以试试更财大气粗的"阿里百川顽兔",100G的存储空间、100G月流量总是够玩了吧!

初次入门阿里百川不知道怎么弄配置文件?见此篇博文:《阿里百川图形化上传工具taesync》

非常不幸的是阿里百川提供的上传工具是用Java开发的,博主俺比较懒,就不测试了。

大体方法都是一样的…..就是事先写好配置文件,然后修改下执行路径。剩下都是一样一样的了~~

 

最后问大家一个问题

//想一个人该怎么办?
#想一个人该怎么办?
--想一个人该怎么办?
/*想一个人该怎么办?*/
<!--想一个人该怎么办?-->
'想一个人该怎么办?

文章版权归原作者所有丨本站默认采用CC-BY-NC-SA 4.0协议进行授权|
转载必须包含本声明,并以超链接形式注明原作者和本文原始地址:
https://dmesg.app/auto-backup-to-qiniu.html
喜欢 (5)
分享:-)
关于作者:
If you have any further questions, feel free to contact me in English or Chinese.
发表我的评论(代码和日志请使用Pastebin或Gist)
取消评论

                     

去你妹的实名制!

  • 昵称 (必填)
  • 邮箱 (必填,不要邮件提醒可以随便写)
  • 网址 (选填)
(6)个小伙伴在吐槽
  1. safari支持还是很渣……好坑。 我用七牛总是会出现各种奇奇怪怪的情况……时好时坏。
    R0uter2016-02-09 21:57 回复
    • 这主题我都不敢升级,升级之后还得弄百度分享,一堆js那个头疼啊...七牛不行就阿里顽兔,不过我觉得顽兔更头疼... :sad:
      Benny2016-02-09 22:04 回复
      • 我去看看那个顽兔,没听说过呢!不过估计还得需要备案……唉,黑户果然麻烦啊。
        R0uter2016-02-09 22:12 回复
        • 你只要有淘宝账号就可以啦,通过实名认证的话是100G流量和空间,不过他那上传工具用起来太捉急了,然后我就写了个gui...
          Benny2016-02-09 22:14
        • 不行,那个是针对应用的,而我需要网站的,那个还不支持https,连验证都不行……我手速快,已经注册并验证了还测试了一番哈哈~
          R0uter2016-02-09 22:30
        • 我把它当做大流量中转网盘用,可以有外链流量还多,不支持https没办法了,所以,果断给七牛冲十块钱弄个https的域名;-)
          Benny2016-02-09 22:42