泉州做网站哪家好,网站建设销售找客户话术,凡科平台登录,网站建设平台官网一、rsync 简介Rsync#xff08;remote synchronize#xff09;是一个远程数据同步工具#xff0c;可通过LAN/WAN快速同步多台主机间的文件#xff0c;也可以使用 Rsync 同步本地硬盘中的不同目录。 Rsync 是用于取代rcp的一个工具#xff0c;Rsync使用所谓的 “Rsync 算法… 一、rsync 简介 Rsyncremote synchronize是一个远程数据同步工具可通过LAN/WAN快速同步多台主机间的文件也可以使用 Rsync 同步本地硬盘中的不同目录。 Rsync 是用于取代rcp的一个工具Rsync使用所谓的 “Rsync 算法” 来使本地和远程两个主机之间的文件达到同步这个算法只传送两个文件的不同部分而不是每次都整份传送因此速度相当快。您可以参考 How Rsync Works A Practical Overview 进一步了解 rsync 的运作机制。 Rsync支持大多数的类Unix系统无论是Linux、Solaris还是BSD上都经过了良好的测试。此外它在windows平台下也有相应的版本比较知名的有cwRsync和Sync2NAS。 Rsync 的初始作者是 Andrew Tridgell 和 Paul Mackerras它当前由 http://rsync.samba.org维护。 Rsync的基本特点如下 1. 可以镜像保存整个目录树和文件系统 2. 可以很容易做到保持原来文件的权限、时间、软硬链接等 3. 无须特殊权限即可安装 4. 优化的流程文件传输效率高 5. 可以使用rcp、ssh等方式来传输文件当然也可以通过直接的socket连接 6. 支持匿名传输以方便进行网站镜像。 在使用 rsync 进行远程同步时可以使用两种方式远程 Shell 方式建议使用 ssh用户验证由 ssh 负责和 C/S 方式即客户连接远程 rsync 服务器用户验证由 rsync 服务器负责。 无论本地同步目录还是远程同步数据首次运行时将会把全部文件拷贝一次以后再运行时将只拷贝有变化的文件对于新文件或文件的变化部分对于原有文件。 rsync 在首次复制时没有速度优势速度不如 tar因此当数据量很大时您可以考虑先使用 tar 进行首次复制然后再使用 rsync 进行数据同步。二、系统环境系统平台CentOS release 6.3 (Final)rsync 版本rsync-3.0.9-2.el6.rfx.x86_64.rpmrsync 服务器TS-DEV 172.16.1.135rsync 客户端TS-CLIENT 172.16.1.136三、服务器端安装rsync服务yum install xinetd rsync -y四、配置 rsync 服务4.1. 配置 rsync 服务器的步骤首先要选择服务器启动方式对于负荷较重的 rsync 服务器应该使用独立运行方式对于负荷较轻的 rsync 服务器可以使用 xinetd 运行方式创建配置文件 rsyncd.conf对于非匿名访问的 rsync 服务器还要创建认证口令文件4.2. 以 xinetd 运行 rsync 服务CentOS 默认以 xinetd 方式运行 rsync 服务。rsync 的 xinetd 配置文件 在 /etc/xinetd.d/rsync。要配置以 xinetd 运行的 rsync 服务需要执行如下的命令# chkconfig rsync on
# service xinetd restart管理员可以修改 /etc/xinetd.d/rsync 配置文件以适合您的需要。例如您可以修改配置行server_args --daemon在后面添加 rsync 的服务选项。4.3. 独立运行 rsync 服务最简单的独立运行 rsync 服务的方法是执行如下的命令# /usr/bin/rsync --daemon您可以将上面的命令写入 /etc/rc.local 文件以便在每次启动服务器时运行 rsync 服务。当然您也可以写一个脚本在开机时自动启动 rysnc 服务。4.4. 配置文件 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 可以有两种数据类型字符串可以不用引号定界字符串布尔值1/0 或 yes/no 或 true/false以 # 或 ; 开始的行为注释\ 为续行符全局参数在文件中 [module] 之外的所有配置行都是全局参数。当然也可以在全局参数部分定义模块参数这时该参数的值就是所有模块的默认值。参数说明默认值address在独立运行时用于指定的服务器运行的 IP 地址。由 xinetd 运行时将忽略此参数使用命令行上的 –address 选项替代。本地所有IPport指定 rsync 守护进程监听的端口号。 由 xinetd 运行时将忽略此参数使用命令行上的–port 选项替代。873motd file指定一个消息文件当客户连接服务器时该文件的内容显示给客户。无pid filersync 的守护进程将其 PID 写入指定的文件。无log file指定 rsync 守护进程的日志文件而不将日志发送给 syslog。无syslog facility指定 rsync 发送日志消息给 syslog 时的消息级别。daemonsocket options指定自定义 TCP 选项。无 模块参数模块参数主要用于定义 rsync 服务器哪个目录要被同步。模块声明的格式必须为 [module] 形式这个名字就是在 rsync 客户端看到的名字类似于 Samba 服务器提供的共享名。而服务器真正同步的数据是通过 path 来指定的。可以根据自己的需要来指定多个模块模块中可以定义以下参数a. 基本模块参数参数说明默认值path指定当前模块在 rsync 服务器上的同步路径该参数是必须指定的。无comment给模块指定一个描述该描述连同模块名在客户连接得到模块列表时显示给客户。无b. 模块控制参数参数说明默认值use chroot若为 true则 rsync 在传输文件之前首先 chroot 到 path 参数所指定的目录下。这样做的原因是实现额外的安全防护但是缺点是需要 root 权限并且不能备份指向 path 外部的符号连接所指向的目录文件。trueuid指定该模块以指定的 UID 传输文件。nobodygid指定该模块以指定的 GID 传输文件。nobodymax connections指定该模块的最大并发连接数量以保护服务器超过限制的连接请求将被告知随后再试。0没有限制lock file指定支持 max connections 参数的锁文件。/var/run/rsyncd.locklist指定当客户请求列出可以使用的模块列表时该模块是否应该被列出。如果设置该选项为 false可以创建隐藏的模块。trueread only指定是否允许客户上传文件。若为 true 则不允许上传若为 false 并且服务器目录也具有读写权限则允许上传。truewrite only指定是否允许客户下载文件。若为 true 则不允许下载若为 false 并且服务器目录也具有读权限则允许下载。falseignore errors指定在 rsync 服务器上运行 delete 操作时是否忽略 I/O 错误。一般来说 rsync 在出现 I/O 错误时将将跳过 –delete 操作以防止因为暂时的资源不足或其它 I/O 错误导致的严重问题。trueignore nonreadable指定 rysnc 服务器完全忽略那些用户没有访问权限的文件。这对于在需要备份的目录中有些不应该被备份者获得的文件时是有意义的。falsetimeout该选项可以覆盖客户指定的 IP 超时时间。从而确保 rsync 服务器不会永远等待一个崩溃的客户端。对于匿名 rsync 服务器来说理想的数字是 600单位为秒。0 (未限制)dont compress用来指定那些在传输之前不进行压缩处理的文件。该选项可以定义一些不允许客户对该模块使用的命令选项列表。必须使用选项全名而不能是简称。当发生拒绝某个选项的情况时服务器将报告错误信息然后退出。例如要防止使用压缩应该是”dont compress *”。*.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbzc. 模块文件筛选参数参数说明默认值exclude指定多个由空格隔开的多个文件或目录(相对路径)并将其添加到 exclude 列表中。这等同于在客户端命令中使用 –exclude 来指定模式。空exclude from指定一个包含 exclude 规则定义的文件名服务器从该文件中读取 exclude 列表定义。空include指定多个由空格隔开的多个文件或目录(相对路径)并将其添加到 include 列表中。这等同于在客户端命令中使用 –include 来指定模式 。空include from指定一个包含 include 规则定义的文件名服务器从该文件中读取 include 列表定义。空一个模块只能指定一个exclude 参数、一个include 参数。结合 include 和 exclude 可以定义复杂的exclude/include 规则 。这几个参数分别与相应的rsync 客户命令选项等价唯一不同的是它们作用在服务器端。关于如何书写规则文件的内容请参考http://www.howtocn.org/rsync:use_rsync。d. 模块用户认证参数参数说明默认值auth users指定由空格或逗号分隔的用户名列表只有这些用户才允许连接该模块。这里的用户和系统用户没有任何关系。用户名和口令以明文方式存放在 secrets file 参数指定的文件中。(匿名方式)secrets file指定一个 rsync 认证口令文件。只有在 auth users 被定义时该文件才起作用。空strict modes指定是否监测口令文件的权限。若为 true 则口令文件只能被 rsync 服务器运行身份的用户访问其他任何用户不可以访问该文件。truersync 认证口令文件的权限一定是 600否则客户端将不能连接服务器。rsync 认证口令文件中每一行指定一个 用户名:口令 对格式为 username:passwd一般来说口令最好不要超过8个字符。若您只配置匿名访问的 rsync 服务器则无需设置上述参数。e. 模块访问控制参数参数说明默认值hosts allow用一个主机列表指定哪些主机客户允许连接该模块。不匹配主机列表的主机将被拒绝。*hosts deny用一个主机列表指定哪些主机客户不允许连接该模块。空客户主机列表定义可以是以下形式单个IP地址。例如192.168.0.1整个网段。例如192.168.0.0/24192.168.0.0/255.255.255.0可解析的单个主机名。例如centoscentos.bsmart.cn域内的所有主机。例如*.bsmart.cn“*”则表示所有。多个列表项要用空格间隔。f. 模块日志参数参数说明默认值transfer logging使 rsync 服务器将传输操作记录到传输日志文件。falselog format指定传输日志文件的字段。”%o %h [%a] %m (%u) %f %l”设置了”log file”参数时在日志每行的开始会添加”%t [%p]“。可以使用的日志格式定义符如下所示%a - 远程IP地址%h - 远程主机名%l - 文件长度字符数%p - 该次 rsync 会话的 PID%o - 操作类型”send” 或 “recv”%f - 文件名%P - 模块路径%m - 模块名%t - 当前时间%u - 认证的用户名匿名时是 null%b - 实际传输的字节数%c - 当发送文件时记录该文件的校验码五、rsync 服务器应用案例5.1. 在服务器端TS-DEV上配置rsync 服务a. 编辑配置文件# vi /etc/rsyncd/rsyncd.conf按 CtrlC 复制代码按 CtrlC 复制代码b. 建立/etc/rsyncd/rsyncd.secrets文件#cat /etc/rsyncd/rsyncd.secretsrsync:123456 rsync:123456 #格式 用户名:口令 china:jk #该用户不要求是系统用户c. 为了密码的安全性我们必须把权限设为600# chown root:root /etc/rsyncd/rsyncd.secrets# chmod 600 /etc/rsyncd/rsyncd.secrets d. 建立连接到服务器的客户端看到的欢迎信息文件/etc/rsyncd/rsyncd.motd# vim /etc/rsyncd/rsyncd.motd David Camp e. 启动rsync# /etc/init.d/xinetd restart f. 查看873端口是否起来# netstat -an | grep 873 如果rsync启动成功的话可以看到873端口已经在监听了。然后我们在客户机上安装rsync软件包yum install rsync -y输入rsync -avzP rsync192.168.10.130::zhouyu /123输入密码就可以啦 rsync -avzP --delete --password-file/tmp/rsync.password david172.16.1.135::davidhome /tmp/david/这回我们引入一个 –delete 选项表示服务器上的数据要与客户端完全一致如果 /tmp/david/目录中有服务器上不存在的文件则删除。最终目的是让/tmp/david/目录上的数据完全与服务器上保持一致用的时候要小心点最好不要把已经有重要数所据的目录当做本地更新目录否则会把你的数据全部删除# touch /tmp/rsync.password# chmod 600 /tmp/rsync.password # echo 123456 /tmp/rsync.password # rsync -avzP --delete --password-file/tmp/rsync.password rsync172.16.1.135::davidhome /tmp/david/5.3. rsync 客户端自动与服务器同步数据编辑crontab # crontab -e 加入如下代码10 0 * * * rsync -avzP --delete --password-file/tmp/rsync.password rsync172.16.1.135::davidhome /tmp/david/表示每天0点10分执行后面的命令。转自http://www.cnblogs.com/zhenhui/p/5715840.html 转载于:https://blog.51cto.com/izhouyu/1885042