RHEL5 配置 RSYNC

                RHEL5 配置 RSYNC


很早就是知道这个东西,但是一直没有去实现。懒。。。。。

今天自己也做一下。


首先在服务端和客户端都安装rsync,我的RHEL5默认已经安装好了。
[root@station203 ~]# rpm -qa | grep rsync
rsync-2.6.8-3.1

要启动rsync服务器有多种方法:
源代码安装的可以用:/rsync-path/bin/rsync -daemon
rpm安装的就可以用xinet来启动,我的RHEL5默认没有安装xinet
[root@station203 ~]# rpm -ivh /mnt/cdrom/Server/xinetd-2.3.14-10.el5.i386.rpm

[root@station203 ~]# vim /etc/xinetd.d/rsync
        disable = no            ## 默认yes 改成 no


## rsync的端口默认是873
/rsync-path/bin/rsync -daemon --port=***  可以指定端口


现在创建rsync服务器的配置文件
[root@station203 ~]# vim /etc/rsyncd.conf

uid = root
gid = root
hosts allow = 192.168.0.204,192.168.1.205
#hosts deny = 0.0.0.0/32
use chroot = no
max connections = 10
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
## 上面这段是全局配置,下面的模块可以有多个

[jason]                    ## 模块名字,自己命名
path = /jason
comment = rsync files
ignore errors
read only = yes
list = no
auth users = jason            ## 同步验证时用什么账号,假如这里没有这项,就是匿名同步,client同步时,不用

用户也能同步。
secrets file = /etc/rsync.passwd    ## 指定认证文件




然后创建认证文件

[root@station203 ~]# vim /etc/rsync.passwd

jason:123456                ## 用户名:密码。注意这个不是系统用户,只是rsync用户。所以不用useradd。

[root@station203 ~]# chmod 600 /etc/rsync.passwd     ## 只能所有者可读,否则报错


下面准备要同步的内容:
[root@station203 ~]# mkdir /jason
[root@station203 ~]# cp ./* /jason



[root@station203 ~]# service xinetd start
Starting xinetd:                                           [  OK  ]
[root@station203 ~]# netstat -anp | grep 873
tcp        0      0 0.0.0.0:873                 0.0.0.0:*                   LISTEN      3169/xinetd



在客户端测试:
[root@station204 ~]# rsync -vzrtopg --delete [email protected]::jason /backup/jason
receiving file list ... rsync: readlink "/install.log" (in jason) failed: Permission denied (13)
rsync: readlink "/install.log.syslog" (in jason) failed: Permission denied (13)
rsync: readlink "/anaconda-ks.cfg" (in jason) failed: Permission denied (13)
。。。。。。

返回服务器端,查原因
[root@station203 jason]# setenforce 0



再测试
[root@station204 ~]# rsync -vzrtopg --delete [email protected]::jason /backup/jason
Password:                         ## 输入密码123456
receiving file list ... done
./
anaconda-ks.cfg
install.log
install.log.syslog

sent 142 bytes  received 9301 bytes  6295.33 bytes/sec
total size is 34619  speedup is 3.67


终于OK了。

## 解释rsync命令
--progress
  是指显示出详细的进度情况,我没有加
--delete  
  rsync 把需要的文件复制到目标计算机,但是并不删除额外文件。通过使用 --delete 选项,目标目录会与原目录保持完全一致
--exclude="*.sh"
  排除一部分文件,可以有多个--exclude=
--include
  选择要同步的文件
--password-file
  指定client端密码文件存放路径
--compress-level=level
  指定压缩的级别
--compress(或 -z)
  指定将压缩数据
--recursive (-r)
  选项让 rsync 递归地复制所有目录
--dirs 选项 (-d)
  产生相反的效果:跳过子目录及其内容
--times、--perms、--owner 和 --group 或 -tpog
  分别让 rsync 保持原来的更新时间戳、权限、所有者和组信息,同时指定所有这些选项的简便方法是使用 --archive(或 -a),

这还会设置 --recursive 和 --links 选项。
--verbose、--progress 和 --stats
  提供关于 rsync 正在执行的操作的大量信息


如果不指定--password-file,就要交互式输入密码才能同步。
我们可以在client创建一个密码文件。

[root@station204 ~]# vim /etc/rsync.passwd

123456                    ## 只要密码就OK,不要用户名。

[root@station204 ~]# chmod 600 /etc/rsync.passwd         ## 只能所有者可读,否则会报错
[root@station204 ~]# rsync -vzrtopg --delete [email protected]::jason /backup/jason --password-

file=/etc/rsync.passwd


现在不用交互输入密码了。可以吧这句写到cron中去,做定时同步。





 

你可能感兴趣的:(配置,职场,rsync,休闲,rhel5)