使用rsync 同步网站文件 cycwll.docx
- 文档编号:25031979
- 上传时间:2023-06-04
- 格式:DOCX
- 页数:25
- 大小:25.76KB
使用rsync 同步网站文件 cycwll.docx
《使用rsync 同步网站文件 cycwll.docx》由会员分享,可在线阅读,更多相关《使用rsync 同步网站文件 cycwll.docx(25页珍藏版)》请在冰豆网上搜索。
使用rsync同步网站文件cycwll
分为两种:
1、客户端通过脚本主动去服务器同步文件。
2、当服务器端目录有变化时,服务器主动将变化的文件推送到客户端。
先介绍第一种配置:
服务器端配置
1、安装rsync和xinetd
yuminstallrsyncxinetd
2、vi/etc/xinetd.d/rsync #编辑配置文件,设置开机启动rsync
disable=no #修改为no
:
wq!
#保存退出
3、/etc/init.d/xinetdstart #启动(CentOS中是以xinetd来管理Rsync服务的)
4、创建配置文件vim/etc/rsyncd.conf安装后没有此配置文件,需要创建
vim/etc/rsyncd.conf
uid=root
gid=root
port=873
maxconnections=36000
usechroot=no
logfile=/var/log/rsyncd.log
pidfile=/var/run/rsyncd.pid
lockfile=/var/run/rsyncd.lock
secretsfile=/etc/rsyncd.pass
[]
path=/home/tongbutest
comment=
ignoreerrors=yes
readonly=no
authusers=qyd
hostsallow=10.10.10.207/24
hostsdeny=*
5、创建用户配置文件/etc/rsyncd.pass
qyd:
qydtongbu#格式,用户名:
密码,可以设置多个,每行一个用户名:
密码
6、设置文件权限
chmod600/etc/rsyncd.conf #设置文件所有者读取、写入权限
chmod600/etc/rsync.pass #设置文件所有者读取、写入权限
7、启动rsync
/etc/init.d/xinetdstart #启动
servicexinetdstop #停止
servicexinetdrestart #重新启动
8、启动rsync服务(网上教程中只需要启动xinetd服务,由xinetd服务管理rsync,但测试时不执行如下命令,测试时就会提示错误,提示拒绝访问)
rsync--daemon#启动rsync
客户端配置:
1、安装rsync和xinetd
yuminstallrsyncxinetd
2、创建密码文件
/etc/rsyncd.pwd#只需输入密码
3、同步测试
rsync-vzrtopg--progress--delete--password-file=/etc/rsyncd.pwdqyd@10.10.10.206:
:
/home/tongbutest
排除某些文件或目录
1、如果单是排除某个目录或者文件可以直接使用--exclude "ad/WEB-INF/classes/"
2、如果要排除多个文件和目录,可以建一个排除列表,如:
vim/opt/qyd_rync_exclude.list文件或目录是相对路径,目录后需跟“/”:
WEB-INF/classes/dbconfig.properties
WEB-INF/classes/reapal_config.properties
WEB_INF/classes/config.properties
WEB-INF/vm/macro/constants.vm
uploadFiles/
contractFiles/
再执行rsync时使用参数--exclude-from=/opt/qyd_rync_exclude.list即可排除列表中的目录和文件
rsync-vzrtopg--progress--delete--exclude-from=/opt/qyd_rync_exclude.list--password-file=/etc/rsyncd.pwdqyd@10.10.10.206:
:
/home/tongbutest
rsync-vzrtopg--progress--delete--password-file=/etc/rsyncd.pwdqyd@10.10.10.206:
:
/usr/local/syqyd_808/webapps/ROOT
rsync服务详解
内容提要
1.掌握两种运行rsync服务的配置方法
2.熟悉配置文件rsyncd.conf的常用参数
3.掌握在生产服务器上同时运行rsync服务的配置方法
4.掌握在备份服务器上运行rsync服务的配置方法
5.重点掌握匿名rsync服务的配置方法
rsync服务简介
上一节讲述了使用rsync客户命令进行同步和备份的内容。
rsync还可以以守护进程(daemon)方式运行,若一台主机以daemon模式运行rsync,一般称其为rsync服务器。
rsync的C/S方式运行方式概述如下:
1.rsync客户端连接远程rsync守护进程进行数据同步。
2.rsync服务器端要开启rsyncd服务,默认监听873端口,等待客户端去连接。
3.rsync服务器可以独立运行,也可由Xinetd运行。
CentOS默认以Xinetd运行。
4.rsync服务器启动时会读取配置文件,默认为/etc/rsyncd.conf,其格式类似于samba的主配置文件。
5.用户验证由服务器负责,用户口令文件在/etc/rsyncd.conf中指明。
rsync命令既是客户端程序,同时也是服务程序。
在运行rsync服务时使用特殊的命令选项,常用的服务选项有:
选项
说明
–daemon
表示以守护进程方式运行
–address=ADDRESS
将此服务绑定到指定的IP地址运行
–port=PORT
指定特殊的监听端口,默认为873端口
–bwlimit=KBPS
限制I/O带宽(单位为KBytes/秒)
–config=FILE
指定配置文件,默认为/etc/rsyncd.conf
–sockopts=OPTIONS
指定自定义TCP选项
-4,–ipv4
使用IPv4
-6,–ipv6
使用IPv6
上面仅仅列出了rsync用于服务的选项,rsync用于客户的选项请参见上节。
配置rsync服务
配置rsync服务器的步骤
∙首先要选择服务器启动方式
o对于负荷较重的rsync服务器应该使用独立运行方式
o对于负荷较轻的rsync服务器可以使用xinetd运行方式
∙创建配置文件rsyncd.conf
∙对于非匿名访问的rsync服务器还要创建认证口令文件
以xinetd运行rsync服务
CentOS默认以xinetd方式运行rsync服务。
rsync的xinetd配置文件
在/etc/xinetd.d/rsync。
要配置以xinetd运行的rsync服务需要执行如下的命令:
#chkconfigrsyncon
#servicexinetdrestart
管理员可以修改/etc/xinetd.d/rsync配置文件以适合您的需要。
例如,您可以修改配置行
server_args=--daemon
在后面添加rsync的服务选项。
独立运行rsync服务
最简单的独立运行rsync服务的方法是执行如下的命令:
/usr/bin/rsync--daemon
您可以将上面的命令写入/etc/rc.local文件以便在每次启动服务器时运行rsync服务。
当然,您也可以写一个脚本在开机时自动启动rysnc服务。
配置文件rsyncd.conf
两种rsync服务运行方式都需要配置rsyncd.conf,其格式类似于samba的主配置文件。
配置文件rsyncd.conf默认在/etc目录下。
为了将所有与rsync服务相关的文件放在单独的目录下,可以执行如下命令:
#mkdir/etc/rsyncd
#touch/etc/rsyncd/rsyncd.conf
#ln-s/etc/rsyncd/rsyncd.conf/etc/rsyncd.conf
配置文件rsyncd.conf由全局配置和若干模块配置组成。
配置文件的语法为:
∙模块以[模块名]开始
∙参数配置行的格式是name=value,其中value可以有两种数据类型:
o字符串(可以不用引号定界字符串)
o布尔值(1/0或yes/no或true/false)
∙以#或;开始的行为注释
∙\为续行符
全局参数
在文件中[module]之外的所有配置行都是全局参数。
当然也可以在全局参数部分定义模块参数,这时该参数的值就是所有模块的默认值。
参数
说明
默认值
address
在独立运行时,用于指定的服务器运行的IP地址。
由xinetd运行时将忽略此参数,使用命令行上的–address选项替代。
本地所有IP
port
指定rsync守护进程监听的端口号。
由xinetd运行时将忽略此参数,使用命令行上的–port选项替代。
873
motdfile
指定一个消息文件,当客户连接服务器时该文件的内容显示给客户。
无
pidfile
rsync的守护进程将其PID写入指定的文件。
无
logfile
指定rsync守护进程的日志文件,而不将日志发送给syslog。
无
syslogfacility
指定rsync发送日志消息给syslog时的消息级别。
daemon
socketoptions
指定自定义TCP选项。
无
模块参数
模块参数主要用于定义rsync服务器哪个目录要被同步。
模块声明的格式必须为[module]形式,这个名字就是在rsync客户端看到的名字,类似于Samba服务器提供的共享名。
而服务器真正同步的数据是通过path来指定的。
可以根据自己的需要,来指定多个模块,模块中可以定义以下参数:
1、基本模块参数
参数
说明
默认值
path
指定当前模块在rsync服务器上的同步路径,该参数是必须指定的。
无
comment
给模块指定一个描述,该描述连同模块名在客户连接得到模块列表时显示给客户。
无
2、模块控制参数
参数
说明
默认值
usechroot
若为true,则rsync在传输文件之前首先chroot到path参数所指定的目录下。
这样做的原因是实现额外的安全防护,但是缺点是需要root权限,并且不能备份指向path外部的符号连接所指向的目录文件。
true
uid
指定该模块以指定的UID传输文件。
nobody
gid
指定该模块以指定的GID传输文件。
nobody
maxconnections
指定该模块的最大并发连接数量以保护服务器,超过限制的连接请求将被告知随后再试。
0(没有限制)
lockfile
指定支持maxconnections参数的锁文件。
/var/run/rsyncd.lock
list
指定当客户请求列出可以使用的模块列表时,该模块是否应该被列出。
如果设置该选项为false,可以创建隐藏的模块。
true
readonly
指定是否允许客户上传文件。
若为true则不允许上传;若为false并且服务器目录也具有读写权限则允许上传。
true
writeonly
指定是否允许客户下载文件。
若为true则不允许下载;若为false并且服务器目录也具有读权限则允许下载。
false
ignoreerrors
指定在rsync服务器上运行delete操作时是否忽略I/O错误。
一般来说rsync在出现I/O错误时将将跳过–delete操作,以防止因为暂时的资源不足或其它I/O错误导致的严重问题。
true
ignorenonreadable
指定rysnc服务器完全忽略那些用户没有访问权限的文件。
这对于在需要备份的目录中有些不应该被备份者获得的文件时是有意义的。
false
timeout
该选项可以覆盖客户指定的IP超时时间。
从而确保rsync服务器不会永远等待一个崩溃的客户端。
对于匿名rsync服务器来说,理想的数字是600(单位为秒)。
0(未限制)
dontcompress
用来指定那些在传输之前不进行压缩处理的文件。
该选项可以定义一些不允许客户对该模块使用的命令选项列表。
必须使用选项全名,而不能是简称。
当发生拒绝某个选项的情况时,服务器将报告错误信息然后退出。
例如,要防止使用压缩,应该是:
”dontcompress=*”。
*.gz*.tgz*.zip*.z*.rpm*.deb*.iso*.bz2*.tbz
3、模块文件筛选参数
参数
说明
默认值
exclude
指定多个由空格隔开的多个文件或目录(相对路径),并将其添加到exclude列表中。
这等同于在客户端命令中使用–exclude来指定模式。
空
excludefrom
指定一个包含exclude规则定义的文件名,服务器从该文件中读取exclude列表定义。
空
include
指定多个由空格隔开的多个文件或目录(相对路径),并将其添加到include列表中。
这等同于在客户端命令中使用–include来指定模式。
空
includefrom
指定一个包含include规则定义的文件名,服务器从该文件中读取include列表定义。
空
∙一个模块只能指定一个exclude参数、一个include参数。
∙结合include和exclude可以定义复杂的exclude/include规则。
∙这几个参数分别与相应的rsync客户命令选项等价,唯一不同的是它们作用在服务器端。
∙关于如何书写规则文件的内容请参见上节。
4、模块用户认证参数
参数
说明
默认值
authusers
指定由空格或逗号分隔的用户名列表,只有这些用户才允许连接该模块。
这里的用户和系统用户没有任何关系。
用户名和口令以明文方式存放在secretsfile参数指定的文件中。
(匿名方式)
secretsfile
指定一个rsync认证口令文件。
只有在authusers被定义时,该文件才起作用。
空
strictmodes
指定是否监测口令文件的权限。
若为true则口令文件只能被rsync服务器运行身份的用户访问,其他任何用户不可以访问该文件。
true
∙rsync认证口令文件的权限一定是600,否则客户端将不能连接服务器。
∙rsync认证口令文件中每一行指定一个用户名:
口令对,格式为:
#以"#"开始的行为注释行
username:
passwd
#一般来说口令最好不要超过8个字符。
若您只配置匿名访问的rsync服务器,则无需设置上述参数。
5、模块访问控制参数
参数
说明
默认值
hostsallow
用一个主机列表指定哪些主机客户允许连接该模块。
不匹配主机列表的主机将被拒绝。
*
hostsdeny
用一个主机列表指定哪些主机客户不允许连接该模块。
空
客户主机列表定义可以是以下形式:
∙单个IP地址。
例如:
192.168.0.1
∙整个网段。
例如:
192.168.0.0/24,192.168.0.0/255.255.255.0
∙可解析的单个主机名。
例如:
centos,
∙域内的所有主机。
例如:
*
∙“*”则表示所有。
∙多个列表项要用空格间隔。
6、模块日志参数
参数
说明
默认值
transferlogging
使rsync服务器将传输操作记录到传输日志文件。
false
logformat
指定传输日志文件的字段。
”%o%h[%a]%m(%u)%f%l”
*设置了”logfile”参数时,在日志每行的开始会添加”%t[%p]“。
∙可以使用的日志格式定义符如下所示:
o%a-远程IP地址
o%h-远程主机名
o%l-文件长度字符数
o%p-该次rsync会话的PID
o%o-操作类型:
”send”或“recv”
o%f-文件名
o%P-模块路径
o%m-模块名
o%t-当前时间
o%u-认证的用户名(匿名时是null)
o%b-实际传输的字节数
o%c-当发送文件时,记录该文件的校验码
rsync服务器与备份
何时使用rsync服务器
∙若用户在远程主机上有登录帐号,通常可以使用ssh方式运行rsync而不必配置rsync服务。
∙由于rsync服务使用明文口令,所以在不可信任的网络中应该尽量使用ssh方式运行rsync。
∙在可信任的网络中可以配置使用rsync服务器,当然也可以使用ssh方式运行rsync。
∙最需要架设rsync服务器的理由恐怕就是匿名rsync服务器了,它可以为客户提供匿名访问的同步资源,
例如:
允许用户同步 FTP 软件资源、Linux发行版本的软件仓库等。
部署rsync服务器的两种方法
为了备份数据,如何在网络中部署rsync服务器呢?
通常有两种方法:
∙在生产服务器上同时运行rsync服务
orsync服务以只读方式提供要备份的数据,从而避免破坏生产服务器上的数据
o根据需要,可以配置一个或多个(为了避免风险)主机作为备份主机
o在每个备份主机上以”拉”的方式从生产服务器将数据同步到备份主机
∙在备份服务器上运行rsync服务
o备份服务器实际上是个数据仓库,他集中收集了网络中所有要备份的主机的数据
o备份服务器上运行的rsync服务以读写方式提供备份空间
o根据需要,可以配置一个或多个(为了避免风险)备份服务器
o在每台要备份的主机(包括生产服务器)上以”推”的方式将备份数据写入备份服务器
上述关于备份的思想方法同样也适用于以ssh方式运行rsync的情况。
当然这时无需架设rsync服务,所需考虑的问题仅仅是应该以”推”方式运行还是以”拉”方式运行。
rsync服务器应用
下面给出几个使用rsync服务器的示例。
在生产服务器上同时运行rsync服务
假设网路中有如下3台计算机
∙生产服务器-pandr(192.168.0.220)
∙备份主机A-backupa(192.168.0.221)
∙备份主机B-backupb(192.168.0.222)
在pandr上配置rsync服务
1、编辑配置文件
#vi/etc/rsyncd/rsyncd.conf
uid=nobody
gid=nobody
syslogfacility=local3
usechroot=yes
readonly=yes
maxconnections=4
timeout=300
motdfile=/etc/rsyncd/rsyncd.motd
pidfile=/var/run/rsyncd.pid
lockfile=/var/run/rsync.lock
hostsallow=192.168.0.221192.168.0.222
hostsdeny=*
secretsfile=/etc/rsyncd/rsyncd.secrets
authusers=bua,bub
list=yes
[home]
uid=root
gid=root
path=/home
comment=productserverhome
exclude=www/samba/ftp/
[www]
path=/home/www
comment=productserverwww
exclude=logs/
下面考查一些权限问题:
#tree/home-p
/home
|--[drwx------]crq
|--[drwxr-xr-x]ftp
|--[drwx------]osmond
|--[drwxr-xr-x]samba
`--[drwxr-xr-x]www
|--[drwxr-xr-x]cgi-bin
|--[drwxr-xr-x]fcgi-bin
|--[drwxr-xr-x]htdocs
`--[drwxr-xr-x]logs
从上面的目录权限可知,每个用户的自家目录对组和其他用户没有任何权限。
当uid和gid设置为nobody时,rsync客户端由于无权进入用户的自家目录,所以不能同步各个自家目录下的内容。
为此,[home]部分将uid和gid设置为root。
rsyncd默认将日志写入/var/log/messages文件,上面的“syslogfacility=local3”配置将使用LOCAL3日志设备(facility)。
为此需要在/etc/syslog.conf文件中添加如下行:
local3.info/var/log/rsync.log
然后使用如下命令重新启动syslog
#servicesyslogrestart
2、编辑rsync服务的口令文件
#touch/etc/rsyncd/rsyncd.secrets
#chmod600/etc/rsyncd/rsyncd.secrets
#vi/etc/rsyncd/rsyncd.secrets
bua:
backupa-s-password
bub:
backupb-s-password
不要在/etc/rsyncd/rsyncd.secrets中使用与同名系统用户帐号相同的口令。
3、以xinetd运行rsync服务
#chkconfigrsyncon
#servicexinetdrestart
4、配置防火墙
使用iptables配置允许rsync服务端口(默认为873)通过,同时限制rsync客户端的连接。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 使用rsync 同步网站文件 cycwll 使用 rsync 同步 网站 文件
![提示](https://static.bdocx.com/images/bang_tan.gif)