需求:linux下多台机器布置分布式调度程序,因为调度程序、脚本以及其它配置文件需要同步反复修改,仅靠scp己经不能满足需求了。因此进行如下调整
1 每台机器上配置一个环境变量文件,如config.sh,然后所有脚本source config.sh
2 所有相同文件用rsync来进行同步,具体配置如下:
[b]vi /etc/xinetd.d/rsync,将disable那行改为no[/b]
[b]vi /etc/rsyncd.conf,加入:[/b]
secrets file = /etc/rsyncd.secrets
motd file = /etc/rsyncd.motd
read only = yes
list = yes
uid = root
gid = root
use chroot = no
hosts allow = 192.168.1.* #哪些电脑可以访问rsync服务
hosts deny = 192.168.1.1 #哪些电脑不可以访问rsync服务
max connections = 2 #最大连接数
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
[koven]
comment = koven 's directory from 172.23.113.*
path = /home/koven/schedule
auth users = koven,root #允许koven和root用户使用
[b]/etc/rc.d/init.d/xinetd reload[/b]
启动后,可以检查下rsync服务:netstat -a |grep rsync
然后打通本机要用来同步的帐号与其它机器(ssh打通),比如打通gate1的koven用户与gate2 gate3的koven用户
最后每次修改了gate1上的一个文件后,可以将gate1的相应目录整个同步到gate2和gate3:
rsync -auv --delete scheduler/ koven@gate2: koven@gate3:
由于rsync的算法会只同步不同的文件,因此速度会非常快。加上delete参数后,会删除该目录下gate1上不存在的文件,这会导致真正的同步
P.S:这里用的是从本机推送的功能。如果需要在客户端实现定期同步服务器端,也可以将相应的代码写到crontab里。rsync支持非常丰富的参数,具体说明可以见帮助
1 每台机器上配置一个环境变量文件,如config.sh,然后所有脚本source config.sh
2 所有相同文件用rsync来进行同步,具体配置如下:
[b]vi /etc/xinetd.d/rsync,将disable那行改为no[/b]
[b]vi /etc/rsyncd.conf,加入:[/b]
secrets file = /etc/rsyncd.secrets
motd file = /etc/rsyncd.motd
read only = yes
list = yes
uid = root
gid = root
use chroot = no
hosts allow = 192.168.1.* #哪些电脑可以访问rsync服务
hosts deny = 192.168.1.1 #哪些电脑不可以访问rsync服务
max connections = 2 #最大连接数
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
[koven]
comment = koven 's directory from 172.23.113.*
path = /home/koven/schedule
auth users = koven,root #允许koven和root用户使用
[b]/etc/rc.d/init.d/xinetd reload[/b]
启动后,可以检查下rsync服务:netstat -a |grep rsync
然后打通本机要用来同步的帐号与其它机器(ssh打通),比如打通gate1的koven用户与gate2 gate3的koven用户
最后每次修改了gate1上的一个文件后,可以将gate1的相应目录整个同步到gate2和gate3:
rsync -auv --delete scheduler/ koven@gate2: koven@gate3:
由于rsync的算法会只同步不同的文件,因此速度会非常快。加上delete参数后,会删除该目录下gate1上不存在的文件,这会导致真正的同步
P.S:这里用的是从本机推送的功能。如果需要在客户端实现定期同步服务器端,也可以将相应的代码写到crontab里。rsync支持非常丰富的参数,具体说明可以见帮助