查看: 842|回复: 0

[建站] VPS折腾笔记之备份:两种异地自动备份的方式

[复制链接]
发表于 2010-7-16 13:05 | 显示全部楼层 |阅读模式
博客或网站的备份是很重要的一个工作,因为经常会有一些VPS和空间商倒闭或跑路。而备份很重要的一点是异地备份,因为如果把备份仍然放在VPS上,很容易同博客一起全军覆没。如果每天手动将VPS上的数据备份,再下载到本身会耗费大量的时间和精力,老耿这几天折腾VPS,在网上查了很多关于网站备份的资料,总结出两种异地备份的方式,当然是自动进行的。

一种是通过脚本自动将数据打包通过FTP上传到Godaddy的免费空间上,另一种是使用dropbox来备份,这两种方式各有优缺点,下面来详细介绍一下。

自动将VPS数据备份到Godaddy免费空间

因为在Godaddy上每注册一个域名,就会免费提供一个容量10G,每月流量300G的免费空间,在页面上方会有一个大大的广告,所以很少有人会用这个免费空间来建立网站,但用来备份VPS上的数据却是很适合的,服务器之间的速度是非常快的,几十M的数据传输,也是一瞬间的事儿。

这种方式的原理是将网站/博客的数据库和数据打包,通过FTP的方式上传到Godaddy的免费空间上,所以先需要在VPS上安装一个lftp,登陆到SSH客户端,输入:

yum -y installlftp


每天自动备份数据库

首先建立一个自动备份数据库的脚本,内容如下:

#!/bin/bash /usr/local/mysql/bin/mysqldump -uusername -ppassword --databases blog > /home/wwwroot/backup/databackup_$(date +%Y%m%d).sql
tar zPcf /home/wwwroot/backup/databackup_$(date +%Y%m%d).sql.tar.gz /home/wwwroot/backup
/usr/bin/lftp -u ftpusername,ftppassword ftpip/backup -e "put /home/wwwroot/backup/databackup_$(date +%Y%m%d).sql.tar.gz;exit"
rm -r /home/wwwroot/backup/*


第一段中需要将username和password替换成数据库的用户名和密码,注意与-u和-p之间不要有空格,意思是备份数据库,并

在/home/wwwrott/backup下生成一个按日期命令的文件。可以先通过SSH客户端或WinSCP来查看mysqldump是否在/usr/local/mysql/bin/目录下。将/home/wwwroot/backup/修改为自己的目录。

第二段是将这个backup中的文件(其实就是刚刚的备份)压缩。

第三段中需要将ftpusername、ftppassword、ftpip分别替换成Godaddy中FTP的连接信息,意思是将第二段中打好的压缩包上传到Godaddy的免费空间上去。可以直接上传到根目录,不过最好是在Godaddy中新建一个FTP帐号和目录来保存这些备份。

第四段是将backup这个目录中所有的文件删除。

建议使用WinSCP来建立脚本,因为WinSCP中带的编辑器有点类似记事本,使用起来比较方便,比如在/usr/local/nginx/conf目录中建立一个名为dbbackup.sh的文件,然后将上述脚本代码拷进去,把一些信息修改为自己的后保存即可。

检查脚本运行,可以直接在SSH客户端中输入:

sh /usr/local/nginx/conf/dbbackup


检查脚本运行是否成功。

使用SSH客户端进入到dbbackup.sh所在的目录,修改脚本权限:

chmod +x dbbackup.sh


然后将dbbackup.sh添加到计划任务当中:

crontab –e


按“i”键编辑,并添加一行:

0 0 * * * sh /usr/local/nginx/conf/dabackup.sh


输入完成后按ESC键退出编辑,输入:wq保存,建立的这个计划任务会保存在/var/spool/cron/root中。意思是每天0点0分时自动运行这个脚本实现每天自动数据库的备份。

每周自动备份博客/网站数据

同样,先建立脚本:

#!/bin/bash tar zPcf /home/wwwroot/backup/blogbackup_$(date +%Y%m%d).tar.gz /home/wwwroot/
/usr/bin/lftp -u ftpusername,ftppassword ftpip/backup -e "put /home/wwwroot/backup/blogbackup_$(date +%Y%m%d).tar.gz;exit"
rm -r /home/wwwroot/backup/*


同样需要将ftpusername、ftppassword、ftpip分别替换成Godaddy中FTP的连接信息,将/home/wwwroot/修改为你需要备份的目录,保存为blogbackup.sh,然后测试脚本是否可以正常运行。

修改脚本权限:

chmod +x blogbackup.sh


添加计划任务:

crontab –e


添加一行信息:

0 0 * * 1 sh /usr/local/nginx/conf/blogbackup.sh


意思为每周备份一次数据。

使用dropbox备份VPS

dropbox可以在linux中安装,用来同步网站的数据,但因为dropbox已经被和谐掉了,所以如果你的VPS在国内,就不要用这种方法了。
安装方法如下:

用SSH客户端登陆,进入root目录:

cd


下载dropbox程序:

wget -O dropbox.tar.gz http://www.dropbox.com/download/?plat=lnx.x86


解压缩:

tar -zxof dropbox.tar.gz


运行dropbox:

~/.dropbox-dist/dropboxd &


运行后,会出现一串URL地址,将这串URL地址复制,出来,粘贴到你的浏览器中运行一下,因为dropbox已经被墙了,所以怎么访问需要自己想办法了。

进入dropbox

cd ~/Dropbox


备份整个wwwroot目录

ln -s /home/wwwroot


然后打开dropbox的首页,登陆后就可以看到同步的数据了。


可是dropbox运行所需要的内存很大,大约会占140M的内存,所以并不适合一直开着,那么我们也可以建立一个计划任务来让dropbox定时运行,再定时关闭。


在~/.dropbox/中建立脚本:

#!/bin/sh start() {
echo starting dropbox
/root/.dropbox-dist/dropboxd &
}
stop() {
echo stoping dropbox
pkill dropbox
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
esac


修改脚本权限:

chmod 755 ~/.dropbox/dropbox.sh


建立计划任务:

crontab –e


添加两条内容:

0 1 * * * sh /root/.dropbox/dropbox.sh restart 0 6 * * * sh /root/.dropbox/dropbox.sh stop


:wq保存,这样dropbox就会自动在每天1点运行,6点关闭。

删除dropbox的方法:

# sh /root/.dropbox/dropbox.sh stop # su - root
# cd
# rm -rf .dropbox .dropbox-dist  Dropbox dropbox.tar.gz dbmakefakelib.py dbreadconfig.py


文章来源:http://www.laogeng.org/archives/1204.html
温馨提示:
1、本内容转载于网络,版权归原作者所有!
2、本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
3、本内容若侵犯到你的版权利益,请联系我们,会尽快给予删除处理!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

客服QQ/微信
372556960 周一至周日:09:00 - 22:00
十五年老品牌,学习网上创业赚钱,首先青年创客,值得信赖!
青年创客 版权所有!

本站内容均转载于互联网,并不代表青年创客立场!
拒绝任何人以任何形式在本站发表与中华人民共和国法律相抵触的言论!

QQ|小黑屋|广告服务|加入vip|APP下载|手机版| 青年创客

GMT+8, 2024-11-25 12:54 , Processed in 0.075776 second(s), 30 queries .

快速回复 返回顶部 返回列表