临近年底,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