vps双机热备

临近年底,vps真是不稳定,囧客圈上个月的在线率估计连95%都没有,为了不折腾,前两天配置好了mysql的主主同步,今天又来折腾一下文件的双机热备.
方案一:
牛人开发的Sersync方案,不知道为啥,虾爷使用未成功…
http://code.google.com/p/sersync/
http://blog.johntechinfo.com/sersyncguild
http://hi.baidu.com/johntech/item/4febbf1f5758ecfc87ad4ee3

已经得知为什么会配置Sersync失败了,因为使用了Lum(自己的路)的面板,造成无法使用,找个时间哥还是换回lnmp.org军哥的吧.

方案二:

东哥提供的同步脚本,只要把他的12小时同步一次改成5分钟就差不多了,反正只是增量备份.

首先,在两台服务器A和B同时装上rsync。

centos:yum install rsync -y

debian:apt-get install rsync -y

这里我们假设B是备份服务器,A上所有的改动都同步到B上去.

在A上输入 ssh-keygen。命令(一路回车):

ssh-keygen

输入ssh-keygen将会显示如下结果

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
d7:15:ad:ff:37:99:4b:c8:01:20:b2:8b:1a:2b:2d:1f [email protected]
The key’s randomart image is:
+–[ RSA 2048]—-+
| . . . .. |
| o . . ..|
| . . .. |
| . . …. |
| . . . S . .. . |
| .+ . . o .|
|ooE o .+|
|.o . .+o|
| . .+|
+—————–+

我们将创建好的公钥上传到B服务器,命令如下

scp /root/.ssh/id_rsa.pub root@B的ip:/root/.ssh/_pub

提示的时候输入密码,该文件即上传到了B服务器。

ssh登陆到B服务器,运行命令 cat /root/.ssh/_pub>>/root/.ssh/authorized_keys

在B服务器中,打开ssh配置文件 vim /etc/ssh/sshd_config,删除 #PubkeyAuthentication yes 这行前面的#

重启sshd: service sshd restart

现在,从A服务器 ssh root@Bip 看看是否可以无密码登陆了?如果上面步骤无误的话,是肯定可以无密码登陆了

 

现在在A服务器上开始运行rsync做一次数据同步

/usr/bin/rsync -rvuog /www/* root@B的ip:/www/

这样就会将A /www/  下的所有文件,同步到B服务器的/www/下,第一次运行时间会很久。如果A上有文件不存在了,你同步的时候也需要B服务器上的文件也同时删除掉,那么参数添加一个 –delete

/usr/bin/rsync   -rvuog    –delete  /www/*  root@B的ip:/www/

第一次同步完毕之后,在A服务器上创建一个cronjob,定期执行同步。

命令为crontab -e,

然后输入

0 */12 * * * /usr/bin/rsync -rvuog –delete /www/ root@B的ip:/backup/file.homezz.com/ >/dev/null 2>&1

表示12小时同步一次。

注意,若你数据量过大,不建议同步周期太频繁,否则会导致不可预料的错误。个人觉得12小时或者6小时比较合适

这里还出现了个小插曲,在保存crontab的时候开始一直提示:
crontab: no changes made to crontab
真是让哥抓耳挠腮的捉急.后来参考网上的解决办法:

yum -y install vim-enhanced
 
如果使用crontab出错:
[root@176177 ~]#crontab -e
no crontab for root - using an empty one
/bin/sh: /bin/vi: No such file or directory
crontab: "/bin/vi" exited with status 127
 
则运行# yum -y install vim*
即可!

接着就ok了:crontab: installing new crontab

小 虾

哦也,我是小虾

You may also like...