171205 8周2次课 linux文件同步工具rsync

Rsync不仅可以远程同步数据(类似于scp [1]),当然还可以本地同步数据(类似于cp),但不同于cp或scp的一点是,rsync不像cp/scp一样会覆盖以前的数据(如果数据已经存在),它会先判断已经存在的数据和新数据有什么不同,只有不同时才会把不同的部分覆盖掉。如果您的linux没有rsync命令请使用 yum install -y rsync 安装。

[root@wagskun ~]# rsync -av /etc/passwd /tmp/1.txt
sending incremental file list
passwd

sent 2316 bytes  received 31 bytes  4694.00 bytes/sec
total size is 2242  speedup is 0.96

[root@wagskun ~]# rsync -av /etc/passwd root@192.168.1.73:/tmp/1.txt

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常用选项

  • -a包含-rtplgoD
  • -r同步目录时要加上,类似cp时的-r选项
  • -v同步时显示一些信息,让我们知道同步的过程
  • -l保留软链接
  • -L加上该选项后,同步软链接时会把源文件给同步
  • -p保持文件的权限属性
  • -o保持文件的属主
  • -g保持文件的属组
  • -D保持设备文件信息
  • -t保持文件的时间属性
  • --delete删除DEST中SRC没有的文件
  • --exclude过滤指定文件,如--exclude "logs"会把文件名包含logs的文件或目录过滤掉,不同步
  • -P显示同步过程,比如速率,比-v更加详细
  • -u加上该选项后,如果DEST中的文件比SRC新,则不同步
  • -z传输时压缩
目录的同步,约定源目标目录与目标目录后面都加”/”反斜杠
[root@wagskun ~]# rsync -av /root/111/  /tmp/111_dest/
sending incremental file list
created directory /tmp/111_dest
./
1.txt
2.txt
3.txt

sent 192 bytes  received 72 bytes  528.00 bytes/sec
total size is 0  speedup is 0.00
 用-L同步软链接源文件
[root@wagskun ~]# rsync -avL /root/111/  /tmp/111_dest/
delete 删除目标目录多余的文件

[root@wagskun ~]# rsync -avL --delete /root/111/  /tmp/111_dest/
sending incremental file list
./
deleting new.txt

sent 75 bytes  received 15 bytes  180.00 bytes/sec
total size is 0  speedup is 0.00
–exclude 过滤
[root@wagskun ~]# rm -rf /tmp/111_dest/*
[root@wagskun ~]# rsync -avL --exclude "*.txt" /root/111/  /tmp/111_dest/
sending incremental file list
./

sent 29 bytes  received 15 bytes  88.00 bytes/sec
total size is 0  speedup is 0.00

  • -P显示同步过程,比如速率,比-v更加详细
[root@wagskun ~]# !rm
rm -rf /tmp/111_dest/*
[root@wagskun ~]# rsync -avP /root/111/  /tmp/111_dest/
sending incremental file list
1.txt
           0 100%    0.00kB/s    0:00:00 (xfer#1, to-check=2/4)
2.txt
           0 100%    0.00kB/s    0:00:00 (xfer#2, to-check=1/4)
3.txt
           0 100%    0.00kB/s    0:00:00 (xfer#3, to-check=0/4)

sent 189 bytes  received 69 bytes  172.00 bytes/sec
total size is 0  speedup is 0.00

-u 如果目标文件比较新,则不同步

[root@wagskun ~]# rsync -avPu /root/111/  /tmp/111_dest/
sending incremental file list

sent 72 bytes  received 12 bytes  168.00 bytes/sec
total size is 0  speedup is 0.00

rsync通过ssh同步

  • rsync -av test1/ 192.168.133.132:/tmp/test2/
  • rsync -av -e "ssh -p 22" test1/ 192.168.133.132:/tmp/test2/
  • rsync通过服务的方式同步
  • 要编辑配置文件/etc/rsyncd.conf
  • 启动服务rsync --daemon
  • 格式:rsync -av test1/ 192.168.133.130::module/dir/
推文件
[root@wagskun ~]# rsync /etc/passwd 192.168.179.129:/tmp/wang.txt
The authenticity of host '192.168.179.129 (192.168.179.129)' can't be established.
ECDSA key fingerprint is 01:03:e4:83:ca:67:a8:15:c7:df:ec:7c:3f:de:e5:d6.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.179.129' (ECDSA) to the list of known hosts.
root@192.168.179.129's password: 
[root@wagskun ~]# 
远程的主机也需要安装rsync


拉文件

[root@wagskun ~]# rsync -avP 192.168.179.129:/tmp/wang.txt /tmp/123.txt
root@192.168.179.129's password: 
receiving incremental file list
wang.txt
        2242 100%    2.14MB/s    0:00:00 (xfer#1, to-check=0/1)

sent 30 bytes  received 2323 bytes  522.89 bytes/sec
total size is 2242  speedup is 0.95

指定端口-e "ssh -p 端口号"
[root@wagskun ~]# rsync -avP -e "ssh -p 22" /etc/passwd  192.168.179.129:/tmp/wang.txt
root@192.168.179.129's password: 
sending incremental file list
passwd
        2242 100%    1.47MB/s    0:00:00 (xfer#1, to-check=0/1)

sent 86 bytes  received 55 bytes  25.64 bytes/sec
total size is 2242  speedup is 15.90


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值