Redhat中安装rsync
1、 首先在服务端和客户端都安装rsync,我的RHEL5默认已经安装好了。在安装RedHat5的时候,可以在软件定制中的“基本系统”——》“基本”的“可选的软件包”中看见:rsync-2.6.8是默认选择安装的


2、 也可以通过命令行检查是否安装:

或者:rpm –q rsync
3、 如果在开始安装RedHat的时候,使用默认选择的rysnc软件,但现在想用更高版本的rsync,可以卸载掉rysnc,再安装更高版本的软件:

4、 卸载完2.6.8版本的rysnc,下面来安装更高版本的rsync(3.0.9):


配置rsync服务器端
5、 修改rsync的配置文件

可以看到rysnc服务是关闭的(disable = yes),这里把它开启,把disable的值改为no
6、 创建rsync服务器配置文件/etc/rsyncd.conf
[root@hyj etc]# vim /etc/rsyncd.conf uid = root gid = root port = 873 # 指定运行端口,默认是873,您可以自己指定 hosts allow = 192.168.0.204, 192.168.1.205 # 允许访问的客户机 #hosts deny = 0.0.0.0/32 #拒绝访问的 use chroot = max connections = timeout= ## 下面这些绿色文件是安装完RSYNC服务后自动生成的文件,当然也可以手动配置到指定路径 pid file = /var/run/rsyncd.pid ##pid文件的存放 lock file = /var/run/rsync.lock ##锁文件的存放位置 log file = /var/log/rsyncd.log ##日志记录文件的存放 #motd file = /etc/rsyncd.motd #欢迎 ## 上面这段是全局配置,下面的模块可以有 [test] ## 模块名字,自己命名 path = /home/hyj/workspace/test #指定文件目录所在位置,这是必须指定 comment = rsync files ## 注释 ignore errors ##忽略IO read only = yes list = no ## 是否把rsync 服务器上提供同步数据的目录显示 ## 下面这一行,同步验证时用的账号,如果没有这项就是匿名同步,client同步时不用用户名也能同步。 auth users = rsync secrets file = /etc/rsync.passwd ## 指定认证文件</div>
7、 然后创建认证文件:
[root@hyj etc]# vim /etc/rsync.passwd
rsync:hyl ## 用户名:密码。注意这个不是系统用户,只是rsync用户。
所以不用useradd。
(名字随便写,只要和上边配置文件里的“auth users”参数一致即可),格式(一行一个用户)
账号:密码
(2)、把密码文件的权限改成600
[root@hyj etc]# chmod 600 /etc/rsync.passwd ## 只能所有者可读,否则报错
8、 如果在配置文件中指定了欢迎信息,在/etc下创建rsyncd.motd,设置欢迎信息:
[root@hyj etc]# vim /etc/rsyncd.motd
Welcome the rsync services!
启动rsyn
9、 在启动之前,可以先看一下rsync是否已经启动运行:用lsof或者nestat都可以

根据输出显示state为LISTEN,表示为等待接受链接的状态,说明rsync已经启动。
现在先kill掉rsync进程,kill之前为上图,kill之后,再次执行netstat –anp|grep 873或者lsof –i:873,结果为空:

10、 防火墙设置:
如果服务器上装有防火墙,需在服务器中设置iptables将837端口开放。
[root@hyj ~]# iptables -A INPUT -p tcp --dport 873 -j ACCEPT
11、 如果rsync进程没有运行,在server端将rsync启动:
(1)、启动rsync服务端(以守护进程形式,独立启动)
#/usr/bin/rsync –daemon

说明启动成功。
(切记:命令行启动的最后是daemon,而不是deamon,否则回报如下错误:
rsync: --deamon: unknown option
rsync error: syntax or usage error (code 1) at main.c(1231) [client=2.6.8])
(2)、启动rsync服务端 (以xinetd超级进程启动)
# /etc/rc.d/init.d/xinetd reload(reload是网上的说法,但是我试了一下报错,start可以)
或者:/etc/rc.d/init.d/xinetd reload(reload是网上的说法,但是我试了一下报错,start可以)
演示:


12、 设置自动启动:
本机安装的Redhat中rsync已经是开机自动启动的,网上说的那两种方法,配置文件中都没有找到相应的配置,通过用chkconfig 命令查看和修改开机启动服务.
[root@hyj ~]# chkconfig

(结果部分省略),可以看出rsync处于on的状态。
配置rsync客户端
13、用安装服务器端的方式安装rsync。
14、启动rsync,如果报如下错误,是因为在etc下没有rsyncd.conf配置文件:

15、[root@hyj etc]# vi /etc/rsyncd.conf
文件内容为空就行。然后启动rsync,可以启动:

命令和实例
16、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]
17、常用为以下两种:
(4)、rsync [OPTION]... [USER@]HOST::SRC DEST
从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模式。
如:rsync -av root@172.16.78.192::www /databack
(5)、rsync [OPTION]... SRC [USER@]HOST::DEST
从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式。
如:rsync -av /databack root@172.16.78.192::www
18、下面为实例:
服务器ip为192.168.8.126,客户端ip为192.168.8.122
19、 (1)、把服务器上的/home/hyj/workspace/test文件夹中的内容备份到客户端的/usr/local/share/rsync_backup中:
[root@hyj ~]# /usr/bin/rsync -vzrtopg --delete --progress rsync@192.168.8.126::test /usr/local/share/rsync_backup
/etc/rsyncd.conf中模块的内容:
path = /home/hyj/workspace/test comment = rsync files ignore errors read only = yes list = no auth users = rsync secrets file = /etc/rsync.passwd</div>
上面这个命令行中-vzrtopg里的v是verbose,z是压缩,r是recursive,topg都是保持文件原有属性如属主、时间的参数(也可以用直接用a来代替rtopg, a为 --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD)。--progress是指显示出详细的进度情况,--delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。
(2)、上面的命令需要在备份的时候需要输入密码,可以在客户端建立一个密码文件,在命令中把密码文件作为参数带

