登录
  • 人们都希望被别人需要 却往往事与愿违
  • 没有人可以回到过去重新开始, 但谁都可以从现在开始, 书写一个全然不同的结局!

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

Linux Benny 小土豆 8788 次浏览 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 作为七牛同步工具文件夹。

  1. mkdir /home/wwwbackup
  2. mkdir /home/qiniu

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

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

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

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

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

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

  1. nano conf.json

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

 

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

给 qrsync 增加可执行权限。

  1. chmod +x qrsync

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

  1. cd ..
  2. nano backup.sh

内容如下:

  1. #!/bin/sh
  2. rm /home/wwwroot/default/phpmyadmin/save/*
  3. mysqldump -u root -p ohyeah --password=123456789 > /home/wwwroot/default/phpmyadmin/save/`date +%Y%m%d`.sql
  4. tar -jcpf /home/wwwbackup/`date +%Y%m%d`.tar.bz2 /home/wwwroot >/dev/null 2>&1
  5. /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 意思是我要把输出丢到黑洞里~~

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

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

解包用

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

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

 

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

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

四。测试

  1. sh /home/backup.sh

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

博主俺又忘记截图了。

五。添加 cron

  1. crontab e

最后一行添加如下内容:

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

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

重启 cron

  1. service cron restart

本次任务成功完成。

来看看上传时的动态

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

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

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

六。后话

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

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

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

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

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

 

最后问大家一个问题

  1. //想一个人该怎么办?
  2. #想一个人该怎么办?
  3. --想一个人该怎么办?
  4. /*想一个人该怎么办?*/
  5. <!--想一个人该怎么办?-->
  6. '想一个人该怎么办?

文章版权归原作者所有丨本站默认采用 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.
发表我的评论
取消评论

                     

去你妹的实名制!

  • 昵称 (必填)
  • 邮箱 (必填,不要邮件提醒可以随便写)
  • 网址 (选填)
(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
您直接访问了本站! 莫非您记住了我的域名. 厉害~ 我倍感荣幸啊 嘿嘿