昨天一激动,就写了个自动删除、压缩Apache日志的脚本。今天更激动,就写了个利用七牛云存储备份网站的脚本。其实都是简单的不能再简单的了,哎~~
七牛云存储对待标准用户(通过身份认证即可)提供10G存储空间、10G下载流量、10万Put、100万Get,一般应用是够了~如果看官你是高校在校学生,那么还可以申请"青葱计划",之后更是有一年期1000元七牛抵用券,想用完都没门了!
零。适用条件
凡是用LAMP、LNMP建站的都可以~其实,只要数据库是MySQL就可以。因为在脚本里使用了mysqldump,其他数据库可能要换成别的命令。
一。为啥要备份呢
一般博客,咱不太可能天天备份,没必要而且还占用空间。咱就采取七天为一个周期、以日期作为备份文件名的周期性备份。要是话唠还可以改成三天、两天一备份,这都是后面一个数字的问题。
备份的意义有多重要就不说了,那些不懂得备份的人都是在丢了数据之后从自杀边缘走回来才懂得此条真理的~
为了防止VPS服务商宕机、或者跑路、或者某天自己折腾完蛋了恰巧没做快照甚至是VPS提供商不提供快照功能,做备份是十分必须的。七牛和你的VPS同时挂了那就去买个彩票吧,做啥博客站呀~
而且,我常常说,“懒人创造了世界”。你看卡尔·本茨那家伙不就偷懒不爱走路吗发明了汽车,你看莱特兄弟不就是嫌弃汽车啥的太慢就发明了飞机吗。我不就是嫌弃手工打包、下载、上传费事吗,就写了个这么个小脚本。
二。准备工作
1.七牛云存储账号一个
建议新建一个私有空间,仅在恢复数据的时候再切换到公开空间免得泄露网站文件。
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同步工具。
本着不留垃圾的原则我就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
输入如下内容保存:其中accesskey、secret key和bucket请自行去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重定向下好啦~~
如果手里还有另一台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开发的,博主俺比较懒,就不测试了。
大体方法都是一样的…..就是事先写好配置文件,然后修改下执行路径。剩下都是一样一样的了~~
最后问大家一个问题
//想一个人该怎么办? #想一个人该怎么办? --想一个人该怎么办? /*想一个人该怎么办?*/ <!--想一个人该怎么办?--> '想一个人该怎么办?