Rsync命令详解

Rsync命令详解

  • 可以镜像保存整个目录树和文件系统。

  • 可以很容易做到保持原来文件的权限、时间、软硬链接等等。

  • 无须特殊权限即可安装。

  • 快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件。rsync 在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。

  • 安全:可以使用scp、ssh等方式来传输文件,当然也可以通过直接的socket连接。

  • 支持匿名传输,以方便进行网站镜象。

IP角色用户
192.168.1.4aaa-服务端root
192.168.1.5bbb-客户端root
192.168.1.6ccc-客户端root

前期准备

  • 解析hosts文件,为了可以直接用主机名方式(可以不弄)
  • aaa服务器可以直接秘钥登陆bbb/ccc(也可以不弄)

Rsync常用选项

-a  归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD。
-v   详细输出模式,打印速率、文件数量等   
-z  传输时进行压缩以提高效率
-e  使用信道协议,制定替代rs的shell程序,走的是ssh协议,需要输入密码或秘钥认证

--existing 仅仅更新那些已经存在于DST的文件,而不备份那些新创建的文件。
--delete 删除那些DST中SRC没有的文件,保证服务端与客户端文件一致。
--bwlimit=KBPS 限制I/O带宽
--delete-excluded 同样删除接收端那些被该选项指定排除的文件

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传输模式:本地传输、远程通道传输、守护进程传输

  • 本地传输:单个主机本地之间的数据传输,此时类似cp
//同步一个文件/etc/hosts到本地/tmp目录下
[root@aaa-server /]# rsync -avz /etc/hosts /tmp

//  利用rsync实现删除文件目录功能,相当于rm
[root@aaa-server /]# rsync -avz --delete /null/ /tmp/


  • 远程通道传输:通过ssh通道传输数据,类似scp命令
//推送本地数据至远端服务器/tmp目录
[root@aaa-server /]# rsync -avz -e 'ssh -p22' /etc/passwd root@192.168.1.5:/tmp/

//拉取远端数据至本地/tmp目录
[root@aaa-server /]# rsync -avz -e 'ssh -p22' root@192.168.1.5:/tmp/passwd.bak /tmp

  • 守护进程传输:rsync非常重要的功能

rsync_bakup指虚拟用户,::bakup指模块它定义了备份的路径,--password-file=/etc/rsync.passwd指密码文件不写它的话就要输入密码

1.编辑rsync的主配置文件,添加[bakup]模块
[root@aaa-server tmp]# vim /etc/rsyncd.conf 
[bakup]
comment= bakup web
path=/data/share
auth user=root

2. 创建密码文,其格式为“username:password”,并把创建的密码文件权限设置为600
[root@aaa-server tmp]# echo "work:abc123" > /etc/rsyncd.passwd
[root@aaa-server tmp]# chmod 600 /etc/rsyncd.passwd

3. 现在就可以对数据进行备份了,注意873端口要打开,
[root@aaa-server share]# rsync -avz root@192.168.1.6::bakup --password-file=/etc/rsync.passwd /data/





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值