赞
踩
需求如下:两台服务器,需要将其中一台服务器的某个目录下的数据定时同步到另外一台服务器的某个目录上,两台主机上的目录下的数据保持一致。
实现步骤
1、两台服务器之间要实现双机互信,配置免密登录
2、使用rsync工具实现两台主机上某个目录下的数据保持一致
1、两台主机上分别修改hosts文件
vim /etc/hosts
192.168.1.223 node1
192.168.1.224 node2
2、秘钥生成和分发
#命令输入后,按三次回车即可
ssh-keygen -t rsa
3、分发秘钥
ssh-copy-id -i /root/.ssh/id_rsa.pub node2
4、验证结果
ssh root@node2
1、在备份主机上创建备份目录
mkdir -p /data/mongo-back
mkdir -p /data/mysql-back
2、配置定时任务
30 04 * * * /usr/bin/rsync -arvPz --delete -e "ssh -p 22" /data/pkgs/yibot_qfqz_tools_new_v1.0/basic-tools/mongo/data/backup/ root@192.168.1.224:/data/mongo-back
30 04 * * * /usr/bin/rsync -arvPz --delete -e "ssh -p 22" /data/pkgs/yibot_qfqz_tools_new_v1.0/basic-tools/mysql/tools/data/backup/ root@192.168.1.224:/data/mysql-back
1、使用同步脚本
#!/usr/bin/expect ######################################################################## if { $argc!=6 } { send_user "Usage: rsync.exp localfile remoteip remoteport remoteuser remotepwd remotedir\n\n" exit 1 } set localfile [lindex $argv 0] set remoteip [lindex $argv 1] set remoteport [lindex $argv 2] set remoteuser [lindex $argv 3] set remotepwd [lindex $argv 4] set remotedir [lindex $argv 5] set timeout 3600 spawn /usr/bin/rsync -arvPz --delete -e "ssh -l$remoteuser -p$remoteport" $localfile $remoteip:$remotedir expect { "Password:" { send "$remotepwd\r" exp_continue } "password:" { send "$remotepwd\r" exp_continue } "yes/no)?" { send "yes\r" exp_continue } timeout { close break } eof { exit 0 } } exit
2、配置定时同步任务
40 03 * * * /data/mysql/rsync.sh /data/mysql/backup/ 192.168.1.11 22 root 123456 /data/mongodump/
更多详细内容请参考:Linux运维实战总结
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。