rsync工具介绍、常用选项、通过ssh同步

简介:

rsync 工具介绍

rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。

  • 安装rsync:yum install -y rsync

rsync 六种不同的模式

命令格式 工作模式
rsync[OPTION]... SRC DEST 同步本地文件。当SRC和DES路径信息都不包含有单个冒号“:”分隔符时就启动这工作模式。
rsync[OPTION]... SRC [USER@]HOST:DEST 将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号“:”分隔符时启动该模式。
rsync[OPTION]... [USER@]HOST:SRC DEST 将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号“:”分隔符时启动该模式。
rsync[OPTION]... [USER@]HOST::SRC DEST] 使用一个远程shell程序(如ssh、rsh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含两个冒号“:”分隔符时启动该模式。
rsync[OPTION]... SRC [USER@]HOST::DEST 使用一个远程shell程序(如ssh、rsh)来实现将本地机器的内容拷贝到远程机器。当DEST地址路径包含两个冒号“:”分隔符时启动该模式。
rsync[OPTION]... rsync://[USER@]HOST[:PORT]/SRC[DEST] 列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。

注意: src表示源文件,dest表示目的文件

rsync 常用选项

rsync 常用选项

  • -a 包含rtplgoD
    • -r:同步目录时加上表示对子目录进行递归处理
    • -t:保持文件的时间属性
    • -p(小写):保持文件的权限属性
    • -l:保留软链接
    • -g:保存文件数组
    • -o:保持文件的属组
    • -D:保存设备文件信息
  • -v:可视化(visual)
  • -L:同步软链接的同时同步其源文件
  • -P(大写):显示同步过程,比v更详细
  • -u:update,加上该选项,如果DEST中文件比SRC中的新,则不同步
  • -z:gzip,传输时压缩
  • --delete:删除DEST中SRC没有的文件
  • --exclude:过滤指定文件,如--exclude “logs”会把文件名包含logs的文件或者目录过滤掉,不同步

rsync 常用选项的应用

  • 同步本地机器上的文件

    [root@localhost ~]# rsync -av /root/abc/ /tmp/abc_dest/
    sending incremental file list
    created directory /tmp/abc_dest
    ./
    1.txt
    1.tx~
    test123.txt -> /root/test/test
    a/
    sent 200 bytes received 60 bytes 520.00 bytes/sec
    total size is 15 speedup is 0.06
    [root@localhost ~]# ls -l /tmp/abc_dest/
    总用量 0
    -rw-r--r--. 1 root root 0 12月 5 15:00 1.tx~
    -rw-r--r--. 1 root root 0 12月 5 15:00 1.txt
    drwxr-xr-x. 2 root root 6 12月 5 14:59 a
    lrwxrwxrwx. 1 root root 15 12月 5 15:04 test123.txt -> /root/test/test
    [root@localhost ~]# rsync -avL /root/abc/ /tmp/abc_dest
    sending incremental file list
    test123.txt
    sent 1287 bytes received 32 bytes 2638.00 bytes/sec
    total size is 1151 speedup is 0.87
    [root@localhost ~]# ls -l /tmp/abc_dest/
    总用量 4
    -rw-r--r--. 1 root root 0 12月 5 15:00 1.tx~
    -rw-r--r--. 1 root root 0 12月 5 15:00 1.txt
    drwxr-xr-x. 2 root root 6 12月 5 14:59 a
    -rw-r--r--. 1 root root 1151 11月 25 11:04 test123.txt

没加-L参数时候,同步数据时会把软链接同步过来,加了-L参数后,同步数据时把软链接文件对应的源文件同步过来。

  • --delete 删除DEST中SRC没有的文件

    [root@localhost ~]# ls abc/
    1.tx~ 1.txt a test123.txt
    [root@localhost ~]# ls /tmp/abc_dest/
    1.tx~ 1.txt a new.txt test123.txt
    [root@localhost ~]# rsync -avL --delete /root/abc/ /tmp/abc_dest/
    sending incremental file list
    ./
    deleting new.txt
    sent 96 bytes received 16 bytes 224.00 bytes/sec
    total size is 1151 speedup is 10.28
    [root@localhost ~]# ls /tmp/abc_dest/
    1.tx~ 1.txt a test123.txt

    --delete可以比较源文件和目标文件,当目标文件比源文件多某个文件时,使用--delete参数可以将目标文件中多出来的文件删除。如果不加--delete参数,只会同步源文件中的文件,目标文件中多余的文件不会动。

  • --exclude 过滤指定文件

    [root@localhost ~]# rsync -av --exclude "*.txt" /root/abc/ /tmp/abc_dest/
    sending incremental file list
    ./
    1.tx~
    a/
    sent 107 bytes received 38 bytes 290.00 bytes/sec
    total size is 0 speedup is 0.00
    [root@localhost ~]# ls /tmp/abc_dest/
    1.tx~ a
    [root@localhost ~]# ls abc/
    1.tx~ 1.txt 2.txt a test123.txt

    --exclude "*.txt" 同步时,不同步以.txt结尾的文件。如果需要过滤多个条件,则需要用多个--exclude。

  • -P(大写)显示同步过程,比v更详细。

    [root@localhost ~]# rsync -avP /root/abc/ /tmp/abc_dest/
    sending incremental file list
    ./
    1.txt
    0 100% 0.00kB/s 0:00:00 (xfer#1, to-check=4/6)
    1.tx~
    0 100% 0.00kB/s 0:00:00 (xfer#2, to-check=3/6)
    2.txt
    7 100% 0.00kB/s 0:00:00 (xfer#3, to-check=2/6)
    test123.txt -> /root/test/test
    a/

    sent 268 bytes received 79 bytes 694.00 bytes/sec
    total size is 22 speedup is 0.06

    使用大写p参数,可以显示同步传输的速度、和进度。传输大文件时很实用。

  • -u:update

    [root@localhost ~]# cat /root/abc/123 
    test 20171201
    [root@localhost ~]# cat /tmp/abc_dest/123 
    test 20171205
    test 20171205
    [root@localhost ~]# rsync -avu /root/abc/ /tmp/abc_dest/
    sending incremental file list
    ./
    sent 146 bytes received 16 bytes 324.00 bytes/sec
    total size is 36 speedup is 0.22
    [root@localhost ~]# cat /tmp/abc_dest/123 
    test 20171205
    test 20171205
    [root@localhost ~]# cat /root/abc/123 
    test 20171201

    加上该选项,如果DEST中文件比SRC中的新,则不同步。

通过ssh同步

通过ssh同步的两台机器需要相互之间可以通信,并且两台都要安装rsync工具。

  • 通过ssh的方式,将一台机器的文件同步到另一台机器。

    [root@localhost ~]# rsync -av /etc/passwd 192.168.159.130:/tmp/2017.txt
    root@192.168.159.130's password: 
    sending incremental file list
    passwd
    sent 1202 bytes received 31 bytes 352.29 bytes/sec
    total size is 1128 speedup is 0.91

    将本地 /etc/passwd 文件同步到远程主机192.168.159.130.

注意: 同步到远程主机上时,如果没选择用户,则当前是那个用户在操作,就那个用户登录远程主机(远程主机上需要有相同的用户)。

[root@localhost ~]# rsync -av 192.168.159.130:/tmp/2017.txt /tmp/201712.txt
root@192.168.159.130's password: 
receiving incremental file list
2017.txt
sent 30 bytes  received 1209 bytes  354.00 bytes/sec
total size is 1128  speedup is 0.91
[root@localhost ~]# ls /tmp
201712.txt

从远程机器192.168.159.130 将文件同步到本地机器。

把文件从本地机器同步到远程机器叫推文件,从远程机器同步到本地机器叫拉文件。

  • 当远程机器的端口不是22端口时,需要使用-e参数

    [root@localhost ~]# rsync -av -e "ssh -p 2200" /etc/passwd 192.168.159.130:/tmp/2017.txt

    -e "ssh -p 2200" 使用2200端口

  • ssh -p 22 192.168.159.130

    ssh 通过22端口远程登录到192.168.159.130 这台机器。


本文转自 豆渣锅 51CTO博客,原文链接:http://blog.51cto.com/754599082/2047680
相关文章
|
7月前
|
Linux 网络安全 数据安全/隐私保护
SSH工具连接远程服务器或者本地Linux系统
SSH工具连接远程服务器或者本地Linux系统
131 0
|
3月前
|
运维 安全 网络安全
常用的运维工具:SSH和远程连接工具详解
常用的运维工具:SSH和远程连接工具详解
153 3
|
7月前
|
Ubuntu Shell Linux
使用sshpass工具通过SSH执行远程命令
`sshpass`是一个用于在脚本中自动输入SSH密码的工具 **在Debian/Ubuntu上安装sshpass:** ```bash sudo apt-get install sshpass ``` **在CentOS/RHEL上安装sshpass:** ```bash sudo yum install sshpass ``` **在Fedora上安装sshpass:** ```bash sudo dnf install sshpass ``` 安装完成后,你可以使用`sshpass`命令通过SSH执行远程命令。以下是一个示例: ```bash sshpass -p 'yo
701 0
|
3月前
|
监控 Linux Shell
Rsync 基于 SSH 同步
Rsync 实时同步配置
112 3
|
4月前
|
安全 Linux 网络安全
Docker部署ssh连接工具webssh2
【8月更文挑战第2天】Docker部署ssh连接工具webssh2
340 6
Docker部署ssh连接工具webssh2
|
4月前
|
监控 网络安全 数据安全/隐私保护
Mac服务器ssh连接工具
Mac服务器ssh连接工具
134 2
|
4月前
|
安全 Linux 网络安全
在Linux中,使用rsync同步数据时,假如采用的是ssh方式,并且目标机器的sshd端端并不是默认的22端口,该如何做?
在Linux中,使用rsync同步数据时,假如采用的是ssh方式,并且目标机器的sshd端端并不是默认的22端口,该如何做?
|
7月前
|
安全 Unix Linux
基于MobaXterm工具的Linux远程SSH登录
本文介绍了如何使用 MobaXterm 进行 Linux 远程登录。首先,从官方网站下载并安装 MobaXterm。启动后,创建新的远程会话,选择 SSH 类型,输入服务器 IP、主机名和端口。接着,提供用户名和密码进行连接。成功后,即可使用远程终端执行命令。此外,文章还提到了其他常用的 Linux 远程登录工具,如 PuTTY、OpenSSH、SecureCRT 和 Xshell,强调了选择工具时应考虑个人偏好和安全需求。
|
Web App开发 安全 Linux
SSH工具客户端软件大全
SSH工具哪个好用?SSH是指安全外壳协议(Secure Shell),是一种加密的网络传输协议,使用SSH工具常用来远程登录系统和远程执行命令行。SSH客户端很多,码笔记分享SSH工具客户端软件大全,包括Windows系统和MAC系统下的SSH客户端软件: 关于SSH密匙可以参考:SSH密钥详解(生成方式、原理及限制),码笔记主要介绍SSH工具客户端大全: SecureCRT SecureCRT最初是Windows系统下的SSH、Telnet客户端和虚拟终端软件,现在SecureCRT已经支持Mac OS和Linux系统。
20689 0
|
6月前
|
安全 Linux Shell
Linux中SSH命令介绍
Linux中SSH命令介绍
170 2

热门文章

最新文章

相关实验场景

更多