使用Linux的rsync命令实现:多服务器镜像同步
实现功能:当用户在本地客户端某目录内建立、修改、删除目录或文件、修改目录或文件的属性,只要执行相同的shell脚本,rsync就会自动找出有改动或删除的数据,将其传送到服务器上,使Linux服务器端某目录内的数据跟本地客户端某目录内的数据保持一致。
★方式一: 一、服务器端(例:10.0.0.1*): 1、创建用户和组 ??? groupadd www -g 48 ??? useradd -u 48 -g www www ??? mkdir -p /opt/htdocs ??? chmod +w /opt/htdocs ??? chown www:www /opt/htdocs ??? 2、编辑rsync的配置文件 ??? vi /etc/rsyncd.conf ??? 输入以下内容: ??? uid=www ??? gid=www ??? max connections=10 ??? use chroot=no ??? log file=/var/log/rsyncd.log ??? pid file=/var/run/rsyncd.pid ??? lock file=/var/run/rsyncd.lock ??? [zhangyan] ??? path=/opt/htdocs ??? comment = my htdocs ??? ignore errors ??? read only = no ??? hosts allow=10.0.0.21 10.0.0.22 ??? 3、启动rsync服务器端 ??? /usr/bin/rsync --daemon ??? 二、客户端(例:10.0.0.21和10.0.0.22): ??? 1、创建一个shell脚本push.sh ??? vi push.sh ??? 输入以下内容(10.0.0.1*为要推送到的目标服务器,zhangyan为服务器端rsyncd.conf配置文件中的模块名): ??? 引用 ??? #!/bin/sh ??? /usr/bin/rsync -vzrtopg --delete $1 10.0.0.10::zhangyan/ ??? /usr/bin/rsync -vzrtopg --delete $1 10.0.0.11::zhangyan/ ??? /usr/bin/rsync -vzrtopg --delete $1 10.0.0.16::zhangyan/ ??? /usr/bin/rsync -vzrtopg --delete $1 10.0.0.19::zhangyan/ ??? 注:因为是内部局域网之间传输,这里没有设置密码。 ??? 2、赋予push.sh执行权限 ??? chmod +x ./push.sh ??? 3、同步推送客户端某个目录中(例:/home/zhanguan/abc)的文件到服务器端的/opt/htdocs目录: ??? ./push.sh /home/zhanguan/abc/ ??? 注意:不要忘了abc后面的/。如果更改的文件太大,可以在上面语句的末尾加上空格和&号,推到后台执行。例: ??? ./push.sh /home/zhanguan/abc/ & ??? ★方式二: ??? 一、服务器端(例:10.0.0.1*): ??? 1、创建用户和组 ??? groupadd www -g 48 ??? useradd -u 48 -g www www ??? mkdir -p /opt/htdocs ??? chmod +w /opt/htdocs ??? chown www:www /opt/htdocs ??? passwd www ??? 为www用户设置一个密码。 ??? 二、客户端: ??? 1、同步推送客户端某个目录中(例:/home/zhanguan/abc)的文件到服务器端的/opt/htdocs目录: ??? /usr/bin/rsync -vzrtopg --delete /home/zhanguan/abc/ -e ssh www@10.0.0.10:/opt/htdocs/ ??? 输入密码,回车即可,无须服务器端启动rsync服务。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |