使用Linux的rsync命令实现 多服务器镜像同步

2019-06-11 09:42

1 使用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服务。

2 使用Linux的rsync命令实现:多服务器镜像同步

实现功能:当用户在本地客户端某目录内建立、修改、删除目录或文件、修改目录或文件的属性,只要执行相同的shell脚本,rsync就会自动找出有改动或删除的数据,将其传送到服务器上,使服务器端某目录内的数据跟本地客户端某目录内的数据保持一致。

一、通过rsh或ssh命令

在没有建立rsync服务器的情况下,我们可以利用rsync命令直接进行快速的差异备份: 命令格式:

#rsync [option] 源路径 目标路径 其中: [option]:

a:使用archive模式,等于-rlptgoD,即保持原有的文件权限 z:表示传输时压缩数据 v:显示到屏幕中

e:使用远程shell程序(可以使用rsh或ssh)

--delete:精确保存副本,源主机删除的文件,目标主机也会同步删除 --include=PATTERN:不排除符合PATTERN的文件或目录 --exclude=PATTERN:排除所有符合PATTERN的文件或目录 --password-file:指定用于rsync服务器的用户验证密码

源路径和目标路径可以使用如下格式:

rsync://[USER@]Host[:Port]/Path <--rsync服务器路径

[USER@]Host::Path <--rsync服务器的另一种表示形式 [USER@]Host:Path <--远程路径 LocalPath <--本地路径

1、同步客户端/home/test/abc目录中的文件到服务器端的/opt/htdocs目录: /usr/bin/rsync -vzrtopg --delete /home/test/abc/ -e ssh www@192.168.1.200:/opt/htdocs/ 2、同步rsync服务器/opt/htdocs/目录中的文件到本地的/home/test/abc/:

/usr/bin/rsync -azv --delete rsync://linuxing@192.168.1.200/opt/htdocs/ /home/test/abc/

二、建立rsync服务器

当服务器没有开通ssh,或备份方没有ssh权限的时候,我们可以通过建立rsync服务器,进行匿名的数据同步。

1、服务端 主配置文件: #vi /etc/rsyncd.conf log file = /var/log/rsyncd.log

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsync.lock

[test] #rsync区段的设定名称

path = /var/www/html/test #需要同步的数据存放路径 comment = test folder #注释

uid = apache #采用什么身份进行文件读取

gid = apache #同上,必须是有读取path权限的用户、组 ignore errors #忽略错误 read only = yes #只读 list = no #不能列表

auth users = linuxing #连接rsync服务的帐号 secrets file = /etc/rsyncd.secrets #指定存放帐号密码的位置

帐号密码文件:

#vi /etc/rsyncd.secrets

#格式:帐号:密码 (每行一组,帐号和密码用:号分开) linuxing:backup

保存后,需要保证用户是root,权限是600 #chown root:root /etc/rsyncd.secrets #chmod 600 /etc/rsyncd.secrets

启动服务:

#rsync --daemon

保证开机自动启动:

修改/etc/xinetd.d/rsync文件,把其中的disable=yes改为disable=no #sed -i -e \#service xinetd.d restart

2、客户端

使用用法一中涉及到rsync://的方法即可。

如果rsync服务器需要密码验证,可以增加--password-file参数:

#rsync -azv --delete rsync://linuxing@192.168.1.100/test /var/www/html --password-file=/etc/test #vi /etc/test #指定访问密码 bakcup

#chmod 600 /etc/test

3、定时

另外,由于rsync客户端没有定时功能,我们可以通过在crontab中增加计划任务实现定时的同步,如:(不要使用-v参数,防止刷屏)

#crontab -e


使用Linux的rsync命令实现 多服务器镜像同步.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:中外电影史试卷(B)_参考答案(新)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: