Fork me on GitHub

Bazingafraser

导航

rsync数据同步方式-002

一、rsync数据同步方式

SYNOPSIS

(1)本地数据同步方式

Local:  rsync [OPTION...] SRC... [DEST]

(2)远程数据同步方式

Access via remote shell:

Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]

Push: rsync [OPTION...] SRC... [USER@]HOST:DEST

(3)守护进程方式同步数据

Access via rsync daemon:
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]

 rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]

Push: rsync [OPTION...] SRC... [USER@]HOST::DEST

  rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST

1、本地数据同步方式(类似于cp)

Local:  rsync [OPTION...] SRC... [DEST]

实例:将/etc/hosts文件复制到/tmp下

[root@backup ~]# rsync  /etc/hosts /tmp/
[root@backup ~]# ls /tmp/hosts
/tmp/hosts

2、远程数据同步方式(类似于scp)---又称为隧道传输

Access via remote shell:
  Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
  Push: rsync [OPTION...] SRC... [USER@]HOST:DEST

说明:需要进行交互传输数据。如果想实现免交互传输数据,需要借助ssh+key方式实现

实例一:【实践操作】pull拉(将远程服务器上的文件拉取到本地)

从远端拉文件到当前目录

[root@nfs01 ~]# touch /tmp/1.txt
[root@backup ~]# rsync nfs01:/tmp/1.txt .
root@nfs01's password:
[root@backup ~]# ll
total 44
-rw-r--r--  1 root root     0 Oct 11 16:16 1.txt

实例二:【实践操作】push推(将本地文件传输到远程服务器上)

将本地的hosts文件推到远端服务器上

[root@backup tmp]# ll
total 4
-rw-r--r-- 1 root root 357 Oct 11 15:12 hosts

(1)使用push的格式 推整个目录(包括目录)

[root@backup tmp]# rsync -r /tmp nfs01:/tmp/
root@nfs01's password:
[root@nfs01 tmp]# ll
total 4
drwxr-xr-x 3 root root 4096 Oct 11 16:20 tmp

(2)推整个目录下的文件(不包括目录本身)

[root@backup tmp]# rsync -r /tmp/ nfs01:/tmp/
root@nfs01's password:
[root@nfs01 tmp]# ll
total 8
-rw-r--r-- 1 root root  357 Oct 11 16:21 hosts
drwxr-xr-x 3 root root 4096 Oct 11 16:20 tmp

说明:

/tmp   --表示将tmp目录本身及目录下的内容进行传输

/tmp/  --表示只传输tmp目录下面的内容信息

 

3、守护进程方式同步数据

[root@localhost ~]# uname -a
Linux 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:29:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Access via rsync daemon:
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
      rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
      rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST

 

(1)配置rsync守护进程方式(需要有服务端与客户端)

 

说明:

01、backup服务器作为rsync的服务端

02、以rsync客户端作为参照物,将数据推到rsync服务器上

 

(2)配置rsync服务端(将服务端配置到backup服务器上)

01、软件是否存在,不存在请yum安装即可

[root@backup ~]# rpm -qa |grep rsync
rsync-3.0.6-12.el6.x86_64

02、进行软件服务配置

[root@backup ~]# vim /etc/rsyncd.conf
uid = rsync
gid = rsync
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
hosts allow = 172.16.1.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
[backup]
comment = "backup dir by clsn"
path = /backup

 

03、创建rsync用户

[root@backup ~]# id rsync
id: rsync: No such user
[root@backup ~]# useradd -s /sbin/nologin -M rsync

 

04、创建数据备份存储目录,目录修改属主

[root@backup ~]# mkdir /backup/
[root@backup ~]# chown -R rsync.rsync /backup/

 

05、创建认证用户密码文件

[root@backup ~]#echo "rsync_backup:clsn123" >>/etc/rsync.password
[root@backup ~]#chmod 600 /etc/rsync.password

 

06、启动rsync服务

[root@backup ~]#rsync --daemon

 

07、至此服务端配置完成

[root@backup ~]# ps -ef |grep rsync
root       2076      1  0 17:05 ?        00:00:00 rsync --daemon
root       2163   1817  0 17:38 pts/1    00:00:00 grep --color=auto rsync
[root@backup ~]# netstat -lntup |grep rsync
tcp        0      0 0.0.0.0:873                 0.0.0.0:*                   LISTEN      2076/rsync        
tcp        0      0 :::873                      :::*                        LISTEN      2076/rsync

 

(3)配置rsync客户端(其他服务器为客户端)

01、软件是否存在

[root@nfs01 ~]# rpm -qa |grep rsync
rsync-3.0.6-12.el6.x86_64

 

02、创建认证用户密码文件

客户端的认证文件只需要有密码即可

[root@nfs01 ~]# echo "clsn123" >>/etc/rsync.password
[root@nfs01 ~]# chmod 600 /etc/rsync.password

 

03、实现数据传输

001、交互式

[root@nfs01 ~]# rsync -avzP /etc/hosts rsync_backup@172.16.1.41::backup
Password:
sending incremental file list
hosts
         357 100%    0.00kB/s    0:00:00 (xfer#1, to-check=0/1)
 
sent 63 bytes  received 33 bytes  9.14 bytes/sec
total size is 357  speedup is 3.72

 

002、免交互式

[root@nfs01 ~]# rsync -avzP /etc/hosts rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
sending incremental file list
hosts
         357 100%    0.00kB/s    0:00:00 (xfer#1, to-check=0/1)
 
sent 199 bytes  received 27 bytes  150.67 bytes/sec
total size is 357  speedup is 1.58

二、特殊参数实践

 

三、rsync命令同步参数选项

 
 
 
 

目录参数

参数说明

-v ,--verbose

详细模式输出,传输时的信息

-z,--compress

传输时进行压缩以提高传输效率

--compress-level=NUM 可按级别压缩

局域网可以不用压缩

-a,--archive (主要)

归档模式,表示以递归方式传输文件,并保持文件属性。等于 -rtopgDl

-r,--recursive   归档于-a

对子目录以递归模式,即目录下的所有目录都同样传输。小写r

-t,--times       归档于-a

保持文件时间信息

-o,--owner       归档于-a

保持文件属主信息

-p,--perms       归档于-a

保持文件权限

-g,--group       归档于-a

保持文件属组信息

-P,--progress

显示同步的过程及传输时的进度等信息(大P)

-D,--devices     归档于-a

保持设备文件信息

-l,--links       归档于-a

保留软连接(小写字母l)

-e,--rsh=COMMAND

使用的信道协议(remote shell),指定替代rsh的shell程序。

例如 ssh

--exclude=PATTERN

指定排除不需要传输的文件信息

--exclude-from=file

文件名所在目录文件,即可以实现排除多个文件

--bwlimit=RATE

限速功能

--delete

让目标目录SRC和源目录数据DST一致,即无差异数据同步

保持同步目录以及文件属性:

1)这里的-avzP相当于 -vzetopdDIP,生产环境常用参数为-avzp

2)在脚本中可以报-vP去掉

3--progress可以用-P代替

让目标目录SRC和源目录数据DST一致,即无差异数据同步

daemon启动扩展参数

 

--daemon

daemon表示以守护进程的方式启动rsync服务。

--address

绑定指定IP地址提供服务。

--config=FILE

更改配置文件路径,而不是默认的/etc/rsyncd.conf

--port=PORT

更改其它端口提供服务,而不是缺省的873端口

posted on 2018-03-16 14:46  Bazingafraser  阅读(234)  评论(0编辑  收藏  举报