rsync命令:

-r 是递归
-l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;-t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件;
-z 传输时压缩;
-P 传输进度;
-v 传输时的进度等信息,和-P有点关系,自己试试。可以看文档;
-u只进行更新,防止本地新文件被重写,注意两者机器的时钟的同时
--progress是指显示出详细的进度情况
--delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致
--password-file=/password/path/file来指定密码文件,这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读。

 

公共的部分

安装rsync

yum -y install rsync 联网安装,两边都要装(手敲)

rpm -qa rsync  查看软件是否安装

rsync配置module只读 rsync -o_rsync配置module只读

服务端

创建文件夹

touch /etc/rsyncd.conf(rsyncd.conf文件内容在本篇文章最下面)
touch /etc/rsyncd.secrets
touch /etc/rsyncd.motd

将rsyncd.secrets这个密码文件的文件属性设为root拥有, 且权限要设为600, 否则无法备份成功!

chmod  600  /etc/rsyncd.secrets

配置rsyncd.motd文件(不写也可以,随便写什么内容,只是一个欢迎页面)

配置rsyncd.secrets文件(username:password格式,多个用户换行)

.服务端添加 添加用户:密码.

vim /etc/rsyncd.secrets
root:123456
rsyncd.conf文件配置参数
pid file = /var/run/rsyncd.pid   #此路径不用配置,自动创建,如果配置了会报错(如果已经存在,就去删掉)
port=873       #指定运行端口,默认是873,您可以自己指定
address=192.168.0.144       #服务端IP地址
uid=root       #指定执行的用户和用户组,默认是nobody,可能遇到权限问题,有些文件从服务器上拉不下来
gid=root  
read only=yes   #只读选择,也就是说,不让客户端上传文件到服务器上
hosts allow=192.168.0.145   #允许的IP,多个IP可以用,分隔
max connections=5     #允许最大连接的客户端数
motd file=/etc/rsyncd.motd   #rsyncd.motd文件路径
log file=/var/log/rsync.log    #rsync服务器日志
transfer logging=yes  #传输文件的日志
log format = %t %a %m %f %b  #日志格式
[test]  #自定义模块
path=/opt/u01/  #指定文件目录所在位置,这是必须指定的 
ignore errors  #忽略IO错误
list=yes  #list 意思是把rsync 服务器上提供同步数据的目录在服务器上模块是否显示列出来
auth users=root  #必须系统存在,多个用户用“,”分隔
secrets file=/etc/rsyncd.password   #密码文件的位置
comment=linuxsir home data    #注释(随便啥内容)
exclude = beinan/ samba/ #排除/opt/u01/下的文件夹,多个用空格隔开
[data]  
path=/opt
list=yes
ignore errors
auth users=root
secrets file=/etc/rsyncd.secrets
comment=This is RHEL 4 data

 

关闭防火墙,

开放873端口:iptables -A  INPUT  -p  tcp  --dport  873  -j  ACCEPT

rsync配置module只读 rsync -o_IP_02

启动rsync服务端:#/usr/bin/rsync --daemon  --config=/etc/rsyncd/rsyncd.conf

查看状态 lsof -i :873

rsync配置module只读 rsync -o_服务器_03

 首先:我们看看rsync服务器上提供了哪些可用的数据源

rsync  --list-only  root@192.168.145.5::

rsync配置module只读 rsync -o_服务器_04

客户端

vim /etc/xinetd.d/rsync修改参数

客户端disable = no,其他不动。

# default: off
# description: The rsync server is a good addition to an ftp server, as it \
#       allows crc checksumming etc.
service rsync
{
        disable = no
        flags           = IPv6
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/bin/rsync
        server_args     = --daemon
        log_on_failure  += USERID
}

rsyncd.conf和rsyncd.motd都不需要配置

touch /etc/rsyncd.secrets

rsyncd.secrets文件(该文件是免密设置,可以不配置,那么需要手动输入密码)格式:密码

vim /etc/rsyncd.secrets

123456

rsync  --list-only  root@192.168.145.5::

rsync配置module只读 rsync -o_rsync配置module只读_05

 

同步文件

从远程同步文件到本地

rsync -avz --password-file=/etc/rsyncd.password root@192.168.0.144::test /opt/u01/

rsync -avz  密码文件位置 服务端用户名@服务端IP::自定义模块名 同步到本地的地址

本地同步到本地

rsync -avH /uu01/ 192.168.0.131:/hy

rsync -avH 本地目录 本地IP:本地路径

(将本地uu01的文件夹下的文件同步到hy文件夹下)

rsync -avH /uu01 192.168.0.131:/hy

(将本地uu01文件夹(包括里面的文件)同步到hy文件夹下)

从本地同步到远程

read only=no,不然会报错

rsync配置module只读 rsync -o_服务端_06

rsync -av /hy root@192.168.0.130::test

rsync -av 本地路径 远程用户@远程IP::模块名

(将本地的hy文件夹同步到test的模块中的/opt/u01路径下)

 

附件:rsyncd.conf内容


pid file = /var/run/rsyncd.pid
 port=873
 address=192.168.0.144
 uid=root
 gid=root
 read only=yes
 hosts allow=192.168.0.145
 max connections=5
 motd file=/etc/rsyncd.motd
 log file=/var/log/rsync.log
 transfer logging=yes
 [test]
 path=/opt/u01/
 ignore errors
 read only=no
 list=no
 hosts allow=192.168.0.145
 auth users=root
 list=yes
 ignore errors
 secrets file=/etc/rsyncd.password
 comment=this is test
 [data]
 path=/opt
 list=yes
 ignore errors
 auth users=root
 secrets file=/etc/rsyncd.secrets
 comment=this is data

完。