rsync服务器(rsync 远程)
温馨提示:这篇文章已超过304天没有更新,请注意相关的内容是否还可用!
面对信息化时代,稍不注意就会脱轨,所以及时的补充知识才能让我们与时俱进,今天给大家带来的是关于rsync服务器和rsync 远程的一篇文章,相信会给你带来较大的帮助!
本文目录一览:
- 1、如何利用rsync命令传送给另外的服务器
- 2、rsync服务器端可以向客户端推数据吗
- 3、怎样开启ubuntu rsync服务器配置
- 4、rsync在windows下的安装和配置
- 5、rsync对磁盘io影响
如何利用rsync命令传送给另外的服务器
rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。 rsync是一个功能非常强大的工具,其命令也有很多功能特色选项,我们下面就对它的选项一一进行分析说明。 语法 rsync [OPTION]... SRC DEST rsync [OPTION]... SRC [USER@]host:DEST rsync [OPTION]... [USER@]HOST:SRC DEST rsync [OPTION]... [USER@]HOST::SRC DEST rsync [OPTION]... SRC [USER@]HOST::DEST rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST] 对应于以上六种命令格式,rsync有六种不同的工作模式: 拷贝本地文件。当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式。如:rsync -a /data /backup 使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号":"分隔符时启动该模式。如:rsync -avz *.c foo:src 使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号":"分隔符时启动该模式。如:rsync -avz foo:src/bar /data 从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模式。如:rsync -av root@192.168.78.192::www /databack 从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式。如:rsync -av /databack root@192.168.78.192::www 列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。如:rsync -v rsync://192.168.78.192/www
rsync服务器端可以向客户端推数据吗
服务器模式:
这种模式是基于C/S模式的,在这种模式下,rsync在后台启用了一个守护进程,这个守护进程在rsync服务器永久运行,用于接收文件传输请求,因此,客户端既可以把文件发给守护进程,也可以向守护进程请求文件。rsync的服务器模式非常适合为异地的中心备份服务器或数据异地存储库来使用。
企业案列: 搭建远程容灾备份系统
为了保证数据安全,需要建立一个远程容灾系统,将网站数据在每天凌晨3点备份到远程的容灾服务器上,由于数量很大,每天只能进行增量备份,仅仅备份当天增加的数据,当网站出现故障后,可以通过备份最大程度的恢复数据。
解决方案:这里假定有A、B两个linux系统,A系统作为网站服务器,B系统作为A系统的远程容灾备份机,因此A系统就是rsync的服务器,B系统就是作为A系统的远程容灾备份,需要在A、B系统上都安装rsync软件,这样,在A系统上运行rsync守护进程,而在B上可以通过系统守护进程crontab来定时备份由A系统指定的数据,从而实现数据的远程容灾。
系统环境:
A系统:192.168.1.10
B系统:192.168.1.11
A、B系统上rsync软件的安装:1、./configure 2、make 3、make install
A系统上rsync的配置文件:rsync配置文件/etc/rsyncd.conf,安装时默认没有这个文件,可手动创建一个即可。
vim /etc/rsyncd.conf
uid=nobody #指定该模块传输文件时守护进程应该具有的用户ID,默认为nobody
gid=nobody #指定该模块传输文件时守护进程应该具有的用户组ID,默认为nobody
use chroot=no ##是否让进程离开工作目录
max connections=10 #指定该模块的最大连接数
strict modes=yes #用于指定是否检查口令文件的权限,yes为检查口令权限,如果设置为yes,密码文件的权限必须为root用户权限
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
log file=/var/log/rsyncd.log
[abc]
path=/abc
comment=abc file
ignore errors #表示可以忽略一些无关的I/O错误
read only =no #设置为no表示客户端可以上传文件,设置为yes表示只读
write only=no #设置为no表示客户端可以下载文件,设置为yes表示不能下载
hosts allow=*
hosts deny=192.168.1.131
list=false #用于设定当客户请求可以使用的模块列表,该模块是否被列出,默认为true
uid=root
gid=root
auth users=backup
secrets file=/etc/server.pass
/etc/server.pass下内容为:backup:abc123
A系统上启动rsync:/usr/local/bin/rsync --daemon
B系统上配置rsync:在备份机 上不用做任何配置,只需执行rsync同步操作即可,为了同步过程中不用输入密码,需要在B系统上创建一个serve.pass文件,该文件的内容与A系统上的server.pass密码一样即可,路径可以随意放,用时指定就行
我们可以把它写成一个脚本方便管理:vim /root/rsync.sh
#!/bin/bash
#Decription:rsync Config
/usr/local/bin/rsync -vzrtopg--delete --progress --exclude "*access" --exclude "debug*" \
backup@192.168.1.10::/abc /date --password-file=/etc/server.pass
#-vzrtopg:
v是“--verbose”显示详细输出模式
z是“--compress”压缩模式
r是“--recursive”以子目录递归模式
t是“--times“用来保持文件信息时间
o是”--owner“用来保持文件的属主信息
p是”--perms“用来保持文件权限
g是”--group“用来保持文件的属组
--progress:用来显示数据镜像同步的过程
--delete:指定以rsync服务器为基准进行数据镜像同步,也就是要保持rsync服务器端目录与客户端目录的完全一致
--exclude:用于排除不需要文件传输的类型
/date:用户指定备份文件在客户端机器上的存放路径
chmod +x /root/rsync.sh
每天3点钟的时候自动执行这个脚本进行数据同步可以crontab
crontab -e
0 3 * * * /root/rsync.sh /dev/null 21
常见问题:
问题一:
@ERROR: chroot failed rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3] 原因:服务器端的目录不存在或无权限。 创建目录并修正权限可解决问题。
问题二:
@ERROR: auth failed on module tee rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3] 原因:
服务器端该模块(tee)需要验证用户名密码,但客户端没有提供正确的用户名密码,认证失败。
提供正确的用户名密码解决此问题。
问题三:
@ERROR: Unknown module ‘tee_nonexists’ rsync error: error starting client-server protocol (code 5) at main.c(1522) [receiver=3.0.3]
原因:
服务器不存在指定模块。
提供正确的模块名或在服务器端修改成你要的模块以解决问题。
怎样开启ubuntu rsync服务器配置
配置文件
rsync的主要有以下三个配置文件rsyncd.conf(主配置文件)、rsyncd.secrets(密码文件)、rsyncd.motd(rysnc服务器信息)
服务器配置文件(/etc/rsyncd.conf),该文件默认不存在,请创建它。
具体步骤如下:
#touch /etc/rsyncd.conf #创建rsyncd.conf,这是rsync服务器的配置文件。
#touch /etc/rsyncd.secrets #创建rsyncd.secrets ,这是用户密码文件。
#chmod 600 /etc/rsyncd/rsyncd.secrets #将rsyncd.secrets这个密码文件的文件属性设为root拥有, 且权限要设为600, 否则无法备份成功!
#touch /etc/rsyncd.motd
下一就是我们修改rsyncd.conf和rsyncd.secrets和rsyncd.motd文件的时候了。
设定/etc/rsyncd.conf
rsyncd.conf是rsync服务器主要配置文件。我们先来个简单的示例,后面在详细说明各项作用。
比如我们要备份服务器上的/home和/opt,在/home中我想把easylife和samba目录排除在外;
# Distributed under the terms of the GNU General Public License v2
# Minimal configuration file for rsync daemon
# See rsync(1) and rsyncd.conf(5) man pages for help
# This line is required by the /etc/init.d/rsyncd script
pid file = /var/run/rsyncd.pid
port = 873
address = 192.168.1.171
#uid = nobody
#gid = nobody
uid = root
gid = root
use chroot = yes
read on
ly = yes
#limit access to private LANs
hosts deny=*
max connections = 5
motd file = /etc/rsyncd.motd
#This will give you a separate log file
#log file = /var/log/rsync.log
#This will log every file transferred - up to 85,000+ per user, per sync
#transfer logging = yes
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300
[rhel4home]
path = /home
list=yes
ignore errors
auth users = root
secrets file = /etc/rsyncd.secrets
comment = This is RHEL 4 data
exclude = easylife/ samba/
[rhel4opt]
path = /opt
list=no
ignore errors
comment = This is RHEL 4 opt
auth users = easylife
secrets file = /etc/rsyncd/rsyncd.secrets
注:关于auth users是必须在服务器上存在的真实的系统用户,如果你想用多个用户以,号隔开,比如auth users = easylife,root
设定密码文件
密码文件格式很简单,rsyncd.secrets的内容格式为:
用户名:密码
我们在例子中rsyncd.secrets的内容如下类似的;在文档中说,有些系统不支持长密码,自己尝试着设置一下吧。
rsync在windows下的安装和配置
首先要下载windows版的rsync
rsync分为服务器端和客户端,以A(服务器端),B(客户端)2台服务器为例
A的IP地址为192.168.1.111
B的ip地址为192.168.1.123
1,先配置服务器端,在服务器上安装cwRsyncServer_4.0.5_Installer.exe,安装的时候路径不要去改,全部用默认路径,如果你用的是64位操作系统请把默认路径中的Program
Files
(x86)那个(x86)删掉,安装过程中rsync会自动建立一个叫做rsync的用户名,并且提示你输入这个用户的密码,这里很关键,这个密码一定要是你系统用户即adminstrator的密码,如果怕出错就不用管他直接点下一步,值得完成安装,这时打开你的服务检查下有没有一个RsyncServer的服务,如果没有的话就是那个用户密码的地方弄错了,建议卸载重新安装,如果有那就OK,最后检查下你的防火墙是否打开873端口
以上就是服务器端的安装了,然后就是配置,找到你rsync的安装目录点击进去里面会有个rsyncd.conf的配置文件,用记事本的方式打开他,在文件最前面追加"uid
=
0"
"gid
=
0"
2行,然后修改
"[]"
的内容,这里小编直接上图,有图更容易看懂
怎么样,从图上来看很清楚把,然后在在服务里面找到
"RsyncServer"
修改为"自动开启"
并且将服务"启动".
2,接下来是客户端,首先客户端先安装cwRsync_4.0.5_Install.exe,同样安装的时候路径不要去改,全部用默认路径,如果你用的是64位操作系统请把默认路径中的Program
Files
(x86)那个(x86)删掉,安装完成后,新建一个txt文本文档,这里小编还是上图来说明
--timeout参数,这个是一个超时设定,在服务器忙或者网络忙的时候rsync会出现同步到一半不动的情况,用了这个参数的话就可以设定他在你指定的时间内rsync没有进行操作则取消命令,这个在多台服务器同步的时候非常有用
--exclude参数,排除你指定某个文件或者目录,这个不用多介绍了
--delete参数,这个的意思是服务器端与客户端保持完全一致,客户段与服务端不同的文件客户端会进行删除操作,这里小编建议新手不要加上这个参数,如果服务端误操作删掉了文件那你所有的机器都会删掉这个文件,就会很麻烦,所以先可以不加这个参数
其实rsync的运用还有很多很多种
,小编介绍的算是一种非常实用又简单的方式,当然有兴趣的同学还可以更加的深入研究它哦。
rsync对磁盘io影响
影响不是很大。
当主服务器文件数目几百万上千万的时候,备份服务器去rsync会大量占用主服务器的IO,导致主服务器响应缓慢。
经过以上对rsync服务器的分享介绍,相信你对rsync 远程有了大概的了解,想知道更多关于rsync服务器的知识,关注大海号,我们将持续为您分享!