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. 将本地的项目导入到github仓库总结lxw

    关键步骤: 第一:git clone https://github.com/lxw18231857001/demo-.git           #把github上面的仓库克隆到本地 本地项目文件夹下 ...

  2. 【WebApi系列】浅谈HTTP

    [01]浅谈HTTP在WebApi开发中的运用 [02]聊聊WebApi体系结构 [03]详解WebApi如何传递参数 [04]详解WebApi测试和PostMan [05]浅谈WebApi Core ...

  3. iOS关闭键盘的两种简单方法

    方法一: //1     [[[UIApplication sharedApplication] keyWindow] endEditing:YES]; ,为了关闭弹出的软键盘要遍历然后调用resig ...

  4. iOS enum 定义与使用

    枚举其实很重要,特别是在应用开发初期,服务器端数据格式需要更改得情况下,枚举和宏都能是程序简洁,并且改动小. 网上有个人写的言简意赅,适合初学 转自:http://blog.csdn.net/ysy4 ...

  5. 通过与Quickbuild和Mist.io的持续集成实现云管理和使用监控

    欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 这篇文章由巴拉克·梅里莫维奇撰写. 总结我自己有关Openstack的各种骚操作先告一段落.这一次我想谈谈有关监控云服务的使用情况. 我个人使用 ...

  6. linux_mount相关故障

    fstab修改错误导致系统无法启动故障修复方案 1. 维护模式或救援模式 2. mount -o rw,remount 挂载点 # 这个方式也可以解决有些分区只能读的故障 3. 然后修改 /etc/f ...

  7. JavaScript之图片懒加载的实现

    图片懒加载指的是在浏览过程中随着需要才被加载出来,例如某宝上面浏览商品时,会伴随很多的图片,如果一次全部加载出来的话,显然资源有些浪费,并且加载速度也会相对降低,那么懒加载的实现很重要.即随着浏览翻阅 ...

  8. Redis+Springmvc搭建(附windows下安装)

    作者注:本文主要用于个人学习.同时欢迎交流讨论 1.添加maven依赖: <dependency>          <groupId>org.springframework. ...

  9. Android开发模板代码(一)——简单打开图库选择照片

    首先,先贴上样本代码 //检查权限 public void checkPermission() { if (ContextCompat.checkSelfPermission(this, Manife ...

  10. MySQL查询结果复制到新表(更新、插入)

    MySQL中可以将查询结果复制到另外的一张表中,复制的话通常有两种情况,一种是更新已有的数据,另一种是插入一条新记录.下面通过例子来说明.首先构建两个测试表. 表t1: 表t2: 1.如果t2表中存在 ...