rsync的 ( 远程同步 )为在Linux / Unix系统局部 拷贝同步文件和目录远程以及一个最常用的命令。 随着rsync命令的帮助,您可以复制并在目录中远程和本地同步数据,在磁盘和网络,进行数据备份和两台Linux机器之间的镜像。

Rsync本地和远程文件同步

本文介绍rsync命令的10个基本和高级的用法在基于Linux的机器远程和本地传输文件。 你并不需要以root用户运行rsync命令。

Rsync命令的一些优点和功能
  1. 它有效地将文件复制到远程系统或从远程系统同步。
  2. 支持复制链接,设备,所有者,组和权限。
  3. 这是比快SCP( 安全复制 ),因为rsync使用远程更新协议,允许转让只是两套文件之间的差异。 第一次,它从源到目标复制文件或目录的整个内容,但从下一次,它只将已更改的块和字节复制到目标。
  4. rsync的消耗更少的带宽 ,因为它使用压缩和解压缩方法在发送和接收数据两端。
rsync命令的基本语法
# rsync options source destination
与rsync命令一起使用的一些常见选项
  1. -v:详细
  2. -r:将数据递归(但不保存时间戳和权限,同时传输数据
  3. -a:归档模式下,归档模式允许递归地拷贝文件,同时也保留了符号链接,文件权限,用户组所有权和时间戳
  4. -z:压缩文件中的数据
  5. -h:在人类可读的格式人类可读,输出数字

推荐阅读: 如何同步文件/目录使用rsync非标准SSH端口

在Linux机器上安装rsync

我们可以用下面的命令的帮助安装的rsync包。

# yum install rsync (On Red Hat based systems)
# apt-get install rsync (On Debian based systems)

1.本地复制/同步文件和目录

在本地计算机上复制/同步文件

以下命令将同步本地计算机上的单个文件从一个位置到另一个位置。 在这里,在这个例子中,backup.tar需要的文件名被复制或同步到/ tmp /备份/文件夹。

[root@howtoing]# rsync -zvh backup.tar /tmp/backups/
created directory /tmp/backups
backup.tar
sent 14.71M bytes received 31 bytes 3.27M bytes/sec
total size is 16.18M speedup is 1.10

在上面的示例中,您可以看到,如果目标不存在,rsync将自动为目标创建一个目录。

在本地计算机上复制/同步目录

以下命令将将同一目录中的所有文件传输或同步到同一计算机中的不同目录。 在这里,在这个例子中,/根/ rpmpkgs包含一些rpm软件包的文件和你想要的目录里面被复制的/ tmp /备份/文件夹。

[root@howtoing]# rsync -avzh /root/rpmpkgs /tmp/backups/
sending incremental file list
rpmpkgs/
rpmpkgs/httpd-2.2.3-82.el5.centos.i386.rpm
rpmpkgs/mod_ssl-2.2.3-82.el5.centos.i386.rpm
rpmpkgs/nagios-3.5.0.tar.gz
rpmpkgs/nagios-plugins-1.4.16.tar.gz
sent 4.99M bytes received 92 bytes 3.33M bytes/sec
total size is 4.99M speedup is 1.00

2.将文件和目录复制/同步到服务器或从服务器同步

将目录从本地服务器复制到远程服务器

此命令将来自本地计算机的目录同步到远程机器,例如 :有一个在其中包含了一些RPM包本地计算机“rpmpkgs”的文件夹,你想那个地方目录的内容发送到远程服务器,您可以使用以下命令。

[root@howtoing]$ rsync -avz rpmpkgs/ root@192.168.0.101:/home/
root@192.168.0.101's password:
sending incremental file list
./
httpd-2.2.3-82.el5.centos.i386.rpm
mod_ssl-2.2.3-82.el5.centos.i386.rpm
nagios-3.5.0.tar.gz
nagios-plugins-1.4.16.tar.gz
sent 4993369 bytes received 91 bytes 399476.80 bytes/sec
total size is 4991313 speedup is 1.00
将远程目录复制/同步到本地计算机

此命令将帮助您将远程目录同步到本地目录。 在这里,在这个例子中,目录/ home / tarunika / rpmpkgs这是一个远程服务器上正在于在/ tmp / myrpms本地计算机复制。

[root@howtoing]# rsync -avzh root@192.168.0.100:/home/tarunika/rpmpkgs /tmp/myrpms
root@192.168.0.100's password:
receiving incremental file list
created directory /tmp/myrpms
rpmpkgs/
rpmpkgs/httpd-2.2.3-82.el5.centos.i386.rpm
rpmpkgs/mod_ssl-2.2.3-82.el5.centos.i386.rpm
rpmpkgs/nagios-3.5.0.tar.gz
rpmpkgs/nagios-plugins-1.4.16.tar.gz
sent 91 bytes received 4.99M bytes 322.16K bytes/sec
total size is 4.99M speedup is 1.00

通过SSH的Rsync

随着rsync的,我们可以使用SSH( 安全外壳 )进行数据传输,使用SSH协议在传输我们的数据,你可以确保你的数据在加密的安全连接传送,这样当它被转移没有人可以读取数据在互联网上的电线。

此外,当我们使用rsync,我们需要提供用户名/ root密码来完成特定的任务,因此在使用SSH选项将把您的登录信息以加密的方式,使你的密码是安全的。

通过SSH将文件从远程服务器复制到本地服务器

要指定使用rsync的协议,你需要给你想使用的协议名称为“-e”选项。 在这里,在这个例子中,我们将使用“SSH”“-e”选项,并执行数据传送。

[root@howtoing]# rsync -avzhe ssh root@192.168.0.100:/root/install.log /tmp/
root@192.168.0.100's password:
receiving incremental file list
install.log
sent 30 bytes received 8.12K bytes 1.48K bytes/sec
total size is 30.74K speedup is 3.77
使用SSH将文件从本地服务器复制到远程服务器
[root@howtoing]# rsync -avzhe ssh backup.tar root@192.168.0.100:/backups/
root@192.168.0.100's password:
sending incremental file list
backup.tar
sent 14.71M bytes received 31 bytes 1.28M bytes/sec
total size is 16.18M speedup is 1.10

建议阅读: 使用rsync来同步新增功能或变更/修改的文件在Linux中

4.使用rsync传输数据时显示进度

为了显示进度,同时从一台计算机传送数据到不同的机器,我们可以用它'-progress“选项。 它显示完成传输的文件和剩余时间。

[root@howtoing]# rsync -avzhe ssh --progress /home/rpmpkgs root@192.168.0.100:/root/rpmpkgs
root@192.168.0.100's password:
sending incremental file list
created directory /root/rpmpkgs
rpmpkgs/
rpmpkgs/httpd-2.2.3-82.el5.centos.i386.rpm
1.02M 100% 2.72MB/s 0:00:00 (xfer#1, to-check=3/5)
rpmpkgs/mod_ssl-2.2.3-82.el5.centos.i386.rpm
99.04K 100% 241.19kB/s 0:00:00 (xfer#2, to-check=2/5)
rpmpkgs/nagios-3.5.0.tar.gz
1.79M 100% 1.56MB/s 0:00:01 (xfer#3, to-check=1/5)
rpmpkgs/nagios-plugins-1.4.16.tar.gz
2.09M 100% 1.47MB/s 0:00:01 (xfer#4, to-check=0/5)
sent 4.99M bytes received 92 bytes 475.56K bytes/sec
total size is 4.99M speedup is 1.00

5.使用-include和-exclude选项

这两个选项可以让我们包括通过与这些选项可以帮助我们来指定要在同步纳入和排除文件和文件夹,你不想被转移这些文件或目录指定参数排除文件。

在这里,在这个例子中,rsync命令将包括那些只有那些带“R”开始的文件和目录,并排除所有其它文件和目录。

[root@howtoing]# rsync -avze ssh --include 'R*' --exclude '*' root@192.168.0.101:/var/lib/rpm/ /root/rpm
root@192.168.0.101's password:
receiving incremental file list
created directory /root/rpm
./
Requirename
Requireversion
sent 67 bytes received 167289 bytes 7438.04 bytes/sec
total size is 434176 speedup is 2.59

6.使用-delete选项

如果文件或目录在源处不存在,但在目标位置已存在,那么在同步时可能需要删除目标处的现有文件/目录。

我们可以用'-delete'选项删除不存在源目录中的文件。

源和目标已同步。 现在,在创建新的目标文件test.txt。

[root@howtoing]# touch test.txt
[root@howtoing]# rsync -avz --delete root@192.168.0.100:/var/lib/rpm/ .
Password:
receiving file list ... done
deleting test.txt
./
sent 26 bytes received 390 bytes 48.94 bytes/sec
total size is 45305958 speedup is 108908.55

目标有叫test.txt的 ,当用'-delete'选项的源同步新的文件,它去掉了文件test.txt。

7.设置要传输的文件的最大大小

您可以指定要传输的最大文件大小或同步。 你可以用“-MAX大小 ”选项做到这一点。 在这里,在这个例子中,最大文件的大小是200K,因此该命令将只传送那些等于或大于200k的较小的文件。

[root@howtoing]# rsync -avzhe ssh --max-size='200k' /var/lib/rpm/ root@192.168.0.100:/root/tmprpm
root@192.168.0.100's password:
sending incremental file list
created directory /root/tmprpm
./
Conflictname
Group
Installtid
Name
Provideversion
Pubkeys
Requireversion
Sha1header
Sigmd5
Triggername
__db.001
sent 189.79K bytes received 224 bytes 13.10K bytes/sec
total size is 38.08M speedup is 200.43

8.成功传输后自动删除源文件

现在,假设您有一个主Web服务器和数据备份服务器,您创建了每日备份并与备份服务器同步,现在您不想在Web服务器中保留备份的本地副本。

所以,你会等待传输完成,然后手动删除这些本地备份文件? 当然不。 这种自动删除可以用'-remove-源文件 “选项来完成。

[root@howtoing]# rsync --remove-source-files -zvh backup.tar /tmp/backups/
backup.tar
sent 14.71M bytes received 31 bytes 4.20M bytes/sec
total size is 16.18M speedup is 1.10
[root@howtoing]# ll backup.tar
ls: backup.tar: No such file or directory

9.使用rsync进行干运行

如果你是一个新手,并使用rsync,不知道你的命令去做什么。 Rsync可能真的搞砸了你的目标文件夹中的东西,然后做一个撤消可以是一个乏味的工作。

推荐阅读: 如何同步两个Apache的Web服务器/网站使用rsync

此选项将不会做任何改变只做命令的预演和使用显示命令的输出,如果输出显示完全相同你想做的事,那么你可以从你的命令删除“-dry运行 ”选项,在终端上运行。

root@howtoing]# rsync --dry-run --remove-source-files -zvh backup.tar /tmp/backups/
backup.tar
sent 35 bytes received 15 bytes 100.00 bytes/sec
total size is 16.18M speedup is 323584.00 (DRY RUN)

10.设置带宽限制和传输文件

您可以同时从一台机器与'-bwlimit'选项的帮助下将数据传输到另一台机器上设置的带宽限制。 此选项可以帮助我们限制I / O带宽。

[root@howtoing]# rsync --bwlimit= -avzhe ssh  /var/lib/rpm/  root@192.168.0.:/root/tmprpm/
root@192.168.0.'s password:
sending incremental file list
sent 324 bytes received 12 bytes 61.09 bytes/sec
total size is 38.08M speedup is 113347.05

此外,默认情况rsync的同步不仅改变块和字节,如果你想明确地要同步整个文件,然后使用“-W'与它选项。

[root@howtoing]# rsync -zvhW backup.tar /tmp/backups/backup.tar
backup.tar
sent 14.71M bytes received 31 bytes 3.27M bytes/sec
total size is 16.18M speedup is 1.10 参考文章:https://www.howtoing.com/rsync-local-remote-file-synchronization-commands/

Rsync(远程同步): linux中Rsync命令的实际示例的更多相关文章

  1. linux中rsync备份文件

    linux中rsync备份文件 备份文件的方式 备份方式: cp : 本机复制 scp: 远程复制 推(本地上传到远程服务器): scp 1.txt root@ip:[路径] [root@m01 ~] ...

  2. Rsync远程同步工具使用

    rsync远程同步工具使用 Rsync(remote synchronize) 是一个远程数据同步工具,可以使用"Rsync算法"同步本地和远程主机之间的文件.Rsync的好处是只 ...

  3. hadoop(六)rsync远程同步|xsync集群分发(完全分布式准备三)|8

    前置环境准备:centos7克隆ip|机器名|映射关系|别名配置(hadoop完全分布式准备一)scp命令copy文件和配置(hadoop完全分布式准备二) rsync远程同步工具 优点 rsync主 ...

  4. linux 远程同步数据工具rsync (1)

    rsync 远程同步数据工具,是linux下的数据备份工具rsync(remote sync 远程同步) 特点:在本地同步数据(类似于cp,但是有不同于远程scp),它会先判断已经存在的数据和远程数据 ...

  5. rsync远程同步

    一.概念 Rsync是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,保持连接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份,镜像服务器等应用.rsy ...

  6. rsync 远程同步 实时同步备份 两种免交互的方式实现实时备份

    rsync 远程同步: 一款快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他SSH.rsync主机同步 作用:做数据备份 备份方式:      完全备份      增量备份 ...

  7. Linux 笔记 - 第十三章 Linux 系统日常管理之(四)Linux 中 rsync 工具和网络配置

    博客地址:http://www.moonxy.com 一.前言 rsync 命令是一个远程数据同步工具,可通过 LAN/WAN 快速同步多台主机间的文件,可以理解为 remote sync(远程同步) ...

  8. rsync 远程同步部署——上下行同步

    rsync 远程同步部署--上下行同步 1.rsync (Remote Sync,远程同步) : 是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用 ...

  9. rsync远程同步的基本配置与使用

    rsync是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份,镜像服务器等应用. rsync的官 ...

  10. Centos安装自定义布局才能自己划分各个区的大小ctrl+z ,fg ,route -n ,cat !$ ,!cat ,XShell 设置, ifconfig CentOS远程连接 Linux中的输入流 第一节课

    Centos安装自定义布局才能自己划分各个区的大小ctrl+z ,fg ,route -n ,cat !$ ,!cat ,XShell 设置, ifconfig  CentOS远程连接  Linux中 ...

随机推荐

  1. VN问题:error:请求的名称有效,但是找不到请求的类型的

    把url中的jmsjms-pc换成IP地址试试看 IP地址你用的是外网地址,应该用局域网内网地址,改成内网地址再试试看 还有练习架设SVN服务器初期尽量用http协议,不要上来就用https协议,ht ...

  2. OpenCV3.4两种立体匹配算法效果对比

    以OpenCV自带的Aloe图像对为例:     1.BM算法(Block Matching) 参数设置如下: ) + ) & -; cv::Ptr<cv::StereoBM> b ...

  3. Sencha Touch vs jQuery Mobile

    Sencha Touch:重量级框架,类似于Flex SDK;组件封装较多;在各平台交互表现统一(内部封装);入门门槛较高 jQuery Mobile:轻量级框架,实质是jQuery插件;组件较少;交 ...

  4. 怎么解决ERROR in Node Sass does not yet support your current environmen问题?

    好久没有重新安装node.js,昨天和小伙伴们一起安装,由于自己是在网上自行下载的node,安装地比较顺利,但另外两个小伙伴用的共享文件夹里自带的node,却是屡次碰到问题,快被逼疯,在运行Vue时总 ...

  5. ClassLoader.getResourceAsStream() 与 Class.getResourceAsStream()的区别

        Class.getResourceAsStream() 会指定要加载的资源路径与当前类所在包的路径一致. 例如你写了一个MyTest类在包com.test.mycode 下,那么MyTest. ...

  6. scss 初学笔记 二 混合宏

    混合宏 格式  @mixin 定义混合宏 (相当于变量声明 var  $ ?) //不带参数混合宏 @mixin borderRadius{ -webkit-border-radius: 5px; b ...

  7. 记录一次tomcat下项目没有加载成功

    哥们儿实在太low了,web.xml文件中加载的spring mybatis配置文件和配置的文件不是同一个文件名导致的!

  8. k8s 如何 Failover?- 每天5分钟玩转 Docker 容器技术(127)

    上一节我们有 3 个 nginx 副本分别运行在 k8s-node1 和 k8s-node2 上.现在模拟 k8s-node2 故障,关闭该节点. 等待一段时间,Kubernetes 会检查到 k8s ...

  9. git 安装使用

    系统ubuntu14.04 1.安装:sudo  apt-get install git 2.设置name and Email: git config --global user.name " ...

  10. error_reporting

    有关error_reporting()函数: error_reporting() 设置 PHP 的报错级别并返回当前级别. ; 错误报告是按位的,或者将数字加起来得到想要的错误报告等级. ; E_AL ...