【图文教程】rsync工具

本文详述了Linux下的rsync工具,包括其功能、常用选项和多种同步方式,如通过ssh同步和通过服务同步。rsync能实现增量拷贝,常用于文件和目录的远程或本地备份。示例介绍了如何使用rsync命令,如排除特定文件、查看传输速率等。
摘要由CSDN通过智能技术生成

扩展
Linux日志文件总管logrotate http://linux.cn/article-4126-1.html
xargs用法详解 http://blog.csdn.net/zhangfn2011/article/details/6776925

1. rsync工具介绍

rsync 是一个比较重要的工具,需要熟练掌握,在工作中很有可能每天都会用到这个工具。例如我们从 A 机器传输文件到 B 机器,或者通过远程去备份一些数据,都会使用这个工具。rsync 不仅可以通过网络传输数据,也可以在本机传输数据,类似于 cp 。

假设现在有一个 A 目录和 B 目录,现在的需求是把 A 目录下的数据拷贝到B目录下去,但是 A 目录下的数据会一直在更新或增加,也就是说 A 目录下的数据一直在变动,现在需要每小时拷贝一次到 B 目录去,如果只使用 cp 命令的话,只能是从头到尾把文件覆盖一遍。但是如果 A 目录只增加了一个很小的文件,也要从头到尾的覆盖的话,很耗费时间和磁盘资源。所以我们才需要使用 rsync 工具, rsync 能实现增量的拷贝, rsync 只会拷贝增加的或更新的文件, rsync 也支持远程同步传输文件。

  • 安装 rsync 包
[root@sc ~]# yum install -y rsync
  • 例如我把 /etc/passwd 文件通过 rsync 命令拷贝到 /tmp 目录下,而且能够看到详细的信息,rsync 命令与其说是拷贝不如说是发送,在显示的信息里也显示了传输速度
[root@sc ~]# rsync -av /etc/passwd /tmp/1.txt
sending incremental file list
passwd

sent 1,874 bytes  received 35 bytes  3,818.00 bytes/sec
total size is 1,782  speedup is 0.93
[root@sc ~]#
  • 远程传输命令格式,需要加上用户名和 IP 地址,后面跟传输的目标目录

如果不写用户名的话,就会默认为当前终端的用户名,例如我当前终端使用的是 root 用户,那么默认就是传输到对方的 root 上,如果我当前终端使用的是 user1 或者其他什么用户,就会按照这个用户名去传输,对方没有这个用户的话也仍然会要求输入密码

[root@sc ~]# rsync -av /etc/passwd root@192.168.85.129:/tmp/1.txt
root@192.168.85.129's password: 
sending incremental file list

sent 45 bytes  received 12 bytes  2.92 bytes/sec
total size is 1,782  speedup is 31.26
[root@sc ~]#

2. rsync常用选项

rsync含义:是一个远程数据同步工具。

rsync [OPTION] … SRC DEST
rsync [OPTION] … SRC [user@]host:DEST
rsync [OPTION] … [user@]host:SRC DEST
rsync [OPTION] … SRC [user@]host::DEST
rsync [OPTION] … [user@]host::SRC DEST
SRC:源文件,DEST:目标目录或者文件,[user@]host:远程服务器,host:代表IP

参数 参数含义
-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 传输时压缩。

rsync主要参数示例:

  • 现在我们开始实践使用一下这些选项,我用 /root/111 目录作为源目录,然后以/tmp 作为目标目录,-av 选项是最常用的选项,能够看到同步的过程
[root@sc ~]# rsync -av /root/111/ /tmp/111_dest/
sending incremental file list
created directory /tmp/111_dest
./
2.txt
aming4
yum.log.1 -> /tmp/yum.log
222/
aming1/
aminglinux/

sent 286 bytes  received 112 bytes  796.00 bytes/sec
total size is 12  speedup is 0.03
[root@sc ~]#
  • 加 -L 选项会把 -a 选项里包含的 -l 选项覆盖掉,-L 选项会把源目录下的软链接文件的指向文件拷贝过去:

如果拷贝软链接文件的指向文件时,该软连接的指向文件不存在就会报错

在这里插入图片描述

  • – delete 选项会删除目标目录中,源目录没有的文件,例如目标目录有一个123.txt的文件,但是源目录没有这个文件,那么同步时就会把目标目录下123.txt文件删除掉
[root@test01 ~]# rsync -avPL --delete /tmp/111/ root@192.168.85.131:/tmp/123/
root@192.168.85.131's password: 
sending incremental file list
deleting 1.txt
./

sent 127 bytes  received 28 bytes  11.48 bytes/sec
total size is 0  speedup is 0.00
  • –exclude 选项可以过滤指定的文件,并且可以过滤多个,例如我把 x 开头的文件都过滤掉
[root@test01 111]# rsync -avLP --exclude "x*" /tmp/111/ root@192.168.85.131:/tmp/123/
root@192.168.85.131's password: 
sending incremental file list
.<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值