Rsync(远程同步): linux中Rsync命令的实际示例
rsync的 ( 远程同步 )为在Linux / Unix系统局部 拷贝和同步文件和目录远程以及一个最常用的命令。 随着rsync命令的帮助,您可以复制并在目录中远程和本地同步数据,在磁盘和网络,进行数据备份和两台Linux机器之间的镜像。
Rsync本地和远程文件同步
本文介绍rsync命令的10个基本和高级的用法在基于Linux的机器远程和本地传输文件。 你并不需要以root用户运行rsync命令。
Rsync命令的一些优点和功能
- 它有效地将文件复制到远程系统或从远程系统同步。
- 支持复制链接,设备,所有者,组和权限。
- 这是比快SCP( 安全复制 ),因为rsync使用远程更新协议,允许转让只是两套文件之间的差异。 第一次,它从源到目标复制文件或目录的整个内容,但从下一次,它只将已更改的块和字节复制到目标。
- rsync的消耗更少的带宽 ,因为它使用压缩和解压缩方法在发送和接收数据两端。
rsync命令的基本语法
# rsync options source destination
与rsync命令一起使用的一些常见选项
- -v:详细
- -r:将数据递归(但不保存时间戳和权限,同时传输数据
- -a:归档模式下,归档模式允许递归地拷贝文件,同时也保留了符号链接,文件权限,用户组所有权和时间戳
- -z:压缩文件中的数据
- -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命令的实际示例的更多相关文章
- linux中rsync备份文件
linux中rsync备份文件 备份文件的方式 备份方式: cp : 本机复制 scp: 远程复制 推(本地上传到远程服务器): scp 1.txt root@ip:[路径] [root@m01 ~] ...
- Rsync远程同步工具使用
rsync远程同步工具使用 Rsync(remote synchronize) 是一个远程数据同步工具,可以使用"Rsync算法"同步本地和远程主机之间的文件.Rsync的好处是只 ...
- hadoop(六)rsync远程同步|xsync集群分发(完全分布式准备三)|8
前置环境准备:centos7克隆ip|机器名|映射关系|别名配置(hadoop完全分布式准备一)scp命令copy文件和配置(hadoop完全分布式准备二) rsync远程同步工具 优点 rsync主 ...
- linux 远程同步数据工具rsync (1)
rsync 远程同步数据工具,是linux下的数据备份工具rsync(remote sync 远程同步) 特点:在本地同步数据(类似于cp,但是有不同于远程scp),它会先判断已经存在的数据和远程数据 ...
- rsync远程同步
一.概念 Rsync是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,保持连接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份,镜像服务器等应用.rsy ...
- rsync 远程同步 实时同步备份 两种免交互的方式实现实时备份
rsync 远程同步: 一款快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他SSH.rsync主机同步 作用:做数据备份 备份方式: 完全备份 增量备份 ...
- Linux 笔记 - 第十三章 Linux 系统日常管理之(四)Linux 中 rsync 工具和网络配置
博客地址:http://www.moonxy.com 一.前言 rsync 命令是一个远程数据同步工具,可通过 LAN/WAN 快速同步多台主机间的文件,可以理解为 remote sync(远程同步) ...
- rsync 远程同步部署——上下行同步
rsync 远程同步部署--上下行同步 1.rsync (Remote Sync,远程同步) : 是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用 ...
- rsync远程同步的基本配置与使用
rsync是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份,镜像服务器等应用. rsync的官 ...
- Centos安装自定义布局才能自己划分各个区的大小ctrl+z ,fg ,route -n ,cat !$ ,!cat ,XShell 设置, ifconfig CentOS远程连接 Linux中的输入流 第一节课
Centos安装自定义布局才能自己划分各个区的大小ctrl+z ,fg ,route -n ,cat !$ ,!cat ,XShell 设置, ifconfig CentOS远程连接 Linux中 ...
随机推荐
- vim 的各种用法,很实用哦,都是本人是在工作中学习和总结的
(一)初级个性化配置你的vim 1.vim是什么? vim是Vi IMproved,是编辑器Vi的一个加强版,一个极其强大并符合IT工程师(程序员.运维)习惯的编辑器.如果你是一名职业的SE,那么一定 ...
- JavaScript之BST
自己尝试用js实现了数据结构的二叉查找树. // node function Node(data) { this.data = data; this.lc = null; this.rc = null ...
- ADO.NET复习总结(5)--工具类SqlHelper 实现登录
工具类SqlHelper 即:完成常用数据库操作的代码封装 一.基础知识1.每次进行操作时,不变的代码: (1)连接字符串:(2)往集合存值:(3)创建连接对象.命令对象:(4)打开连接:(5)执行命 ...
- mybatis_helloWorld_sequence图(3)
摘录自:http://blog.csdn.net/y172158950/article/details/17006127 1. 依据resource获取Reader的sequence图 String ...
- linux_inotify
什么是inotify? 拥有强大.粒细粒度.异步文件系统事件监控机制,监控文件系统中添加.删除.修改.移动等各种事件 版本支持: 内核 2.6.13以上版本,inotify-tools 是实施监控的软 ...
- centos7 安装jdk 1.8
1.下载jdk1.8 for linux的安装包 jdk-8u11-linux-x64.tar.gz,下载地址:http://download.oracle.com/otn-pub/java/jdk ...
- SVN同步时忽略特定文件或文件夹
在MyEclipse中使用SVN同步的时候,经常会提示一些比如.classpath等不需要同步的配置文件,可以通过设置来忽略这一部分的文件或者文件夹. 1.选择菜单Window→Preferences ...
- JDBC (五)
1 使用dbutils进行一对多.多对多的开发 1.1 准备 mysql驱动的pom.xml <!-- https://mvnrepository.com/artifact/mysql/mysq ...
- su鉴定故障
su切换用户鉴定故障 [yolo1@izqfsfqp8ejn9zz ~]$ su root密码:su: 鉴定故障[yolo1@izqfsfqp8ejn9zz ~]$ sudo root 我们信任您已经 ...
- js基本语法与变量
1.//声明变量,js是弱类型语言,变量类型声明示没有意义的.变量类型是随时可以变化的.var a = 1; a = "haha"; a = false;2.注释与 ...