Rsync(远程同步): inux中Rsync命令的实际示例

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 /备份/文件夹。

[[email protected]]# 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 /备份/文件夹。

[[email protected]]# 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”的文件夹,你想那个地方目录的内容发送到远程服务器,您可以使用以下命令。

[[email protected]]$ rsync -avz rpmpkgs/ [email protected].168.0.101:/home/
[email protected].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本地计算机复制。

[[email protected]]# rsync -avzh [email protected].168.0.100:/home/tarunika/rpmpkgs /tmp/myrpms
[email protected].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”选项,并执行数据传送。

[[email protected]]# rsync -avzhe ssh [email protected].168.0.100:/root/install.log /tmp/
[email protected].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将文件从本地服务器复制到远程服务器
[[email protected]]# rsync -avzhe ssh backup.tar [email protected].168.0.100:/backups/
[email protected].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“选项。 它显示完成传输的文件和剩余时间。

[[email protected]]# rsync -avzhe ssh --progress /home/rpmpkgs [email protected].168.0.100:/root/rpmpkgs
[email protected].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”开始的文件和目录,并排除所有其它文件和目录。

[[email protected]]# rsync -avze ssh --include ‘R*‘ --exclude ‘*‘ [email protected].168.0.101:/var/lib/rpm/ /root/rpm
[email protected].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。

[[email protected]]# touch test.txt
[[email protected]]# rsync -avz --delete [email protected].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的较小的文件。

[[email protected]]# rsync -avzhe ssh --max-size=‘200k‘ /var/lib/rpm/ [email protected].168.0.100:/root/tmprpm
[email protected].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-源文件 “选项来完成。

[[email protected]]# 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
[[email protected]]# ll backup.tar
ls: backup.tar: No such file or directory

9.使用rsync进行干运行

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

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

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

[email protected]]# 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带宽。

[[email protected]]# rsync --bwlimit=100 -avzhe ssh  /var/lib/rpm/  [email protected].168.0.100:/root/tmprpm/
[email protected].168.0.100‘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‘与它选项。

[[email protected]]# 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/
时间: 2024-08-12 02:07:54

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

CentOS 6.x中用rsync远程同步文件

CentOS 6.x中用rsync远程同步文件 系统环境:Centos 6.9 x64  目的: 服务器110.112.200.12中/u01文件夹需要同步复制到110.210.250.58里面进行备份. 将200.12做xinetd 服务器,将其/u01 文件夹复制同步到250.58里面去,250.58做客户端. 一.服务器端的配置 在源服务器110.112.200.12中配置 [[email protected] test]#  yum -y install xinetd rsync 再修改

rsync 远程同步 linux 及 windows 主机

一.前言 1.rsync原理及rsync+inotify触发同步 http://nmshuishui.blog.51cto.com/1850554/1387048 2.本篇说明 为了保证数据的绝对可靠性: 首先,所有的服务器的数据都用脚本打包备份在本地一份,如上篇博客 其次,单独拿出一台pc机做备份机,为rsync客户端,每天定时却拉取各rsync服务器备份好的数据包 再次,使用rsync同步 linux 及 windows 服务器 3.服务器说明 rsync服务器:192.168.200.16

rsync远程同步备份

作者:Georgekai 归档:学习笔记 2018/1/22 本章正题:rsync远程同步备份 1.5.1 什么是rsync? 开源的.快速的.多功能的.可实现全量及增量备份的本地或远程数据同步备份方案 rsync官网:http://rsync.samba.org/documentation.html 1. 什么是全量.什么是增量? 全量备份:本地所有数据都进行传输复制,不管对端服务器是否有相同的数据,如果有进行覆盖 增量备份:只备份同步变化的的数据,对端服务器已存在的数据不进行传输复制 1.5

CentOS 7 上部署rsync远程同步

配置rsync源服务器 rsync是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,保持链接和权限,且采用优化的同步算法,在传输前执行压缩,因此非常适用于异地备份.镜像服务器等应用. 在远程同步任务中,负责发起rsync同步操作的客户机称为发起端,而负责响应来自客户机的rsync同步操作的服务器称为同步源.在同步过程中,同步源负责提供文档的原始位置,而发起端对该位置具有读取权限,如下图所示. 同步源端IP:192.168.10.161 发起端IP:192.168.10

Rsync远程同步,实现下行 ,上行异地备份。配置rsync+inotify实时备份。

rsync作为一款最常用的备份工具,是linux/unix系统默认安装的基本组件之一. 本次实验环境: 1)VMware Workstation虚拟机环境 2)以CentOS7系统为实验对象,一台PC作为rsync源服务器,设置IP地址为,192.168.30.55 一台PC作为Rsync客户端,设置IP地址为,192.168.30.77.在远程同步任务中,负责发起rsync同步操作的客户机称为发起端,而负责响应来自客户机的rsync同步操作的服务器称为同步源. 首先配置rsync源服务器, r

rsync远程同步及rsync+inotify实时同步

rsync远程同步及rsync+inotify实时同步 思维代入 正确.有效的备份方案是保障系统及数据安全的重要手段.在服务器中,通常会结合计划性任务.shell脚本来执行本地备份.但有时候为了提高备份的可靠性,异地备份也是非常有必要的.那下面就给大家介绍一种异地远程备份的方法:rsync远程备份. rsync简介 rsync是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份.保持链接和权限,且采用优化的同步算法,在传输前执行压缩,因此非常适用于异地备份.镜像服务等应用

rsync远程同步(定期同步、实时同步)

关于rsync . 一款快速增量备份工具 1.Remote Sync,远程同步 2.支持本地复制,或者与其他SSH.rsync主机同步 3.官方网站: http://rsync.samba.org 配置rsync源服务器 rsync同步源: 指备份操作的远程服务器,也称为备份源 配置rsync源 基本思路: 1.建立rsyncd.conf配置文件.独立的账号文件 .启用rsync的--daemon模式 应用示例: 1.户backuper,允许下行同步 2.操作的目录为/var/www/html/

linux rsync 远程同步

rsync(Remote Sync) 是一个Unix/linux系统下的文件同步和传输工具.Rsync通过"rsync算法"提供了一个客户机和远程文件服务器的文件同步的快速方法.   工作机制:  在远程同步任务中,负责发起rsync同步操作的客户机称为发起端,而负责响应来自客机的rsync同步操作的服务器称为备份源.在下行同步(下载)中,备份源负责提供文档的原始位置,发起端应对该位置具有读取权限:在上行同步(上传)中,备份源负责提供文档的目标位置,发起端应对该位置具有写入权限. rs

rsync远程同步备份工具

rsync远程同步介绍 rsync(Remote Sync,远程同步)是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,保持链接和权限,切采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份,镜像服务器等应用. rsync官方站点是http://rsync.samba.org/,由Wayne Davsion进行维护.作为一种常用的备份工具,rsync往往是Linux和Unix系统默认安装的基本组件之一. 在远程同步任务中,负责发起rsync同步操作的客户机称为发

Linux之rsync 远程同步

Linux之rsync 远程同步 1. 案例 1. 开始部署 (1) 在1.10服务器上配置为服务端,修改rsync的配置文件/etc/rsyncd.conf,并启动rsync服务程序. (2) 在1.20上使用rsync命令验证是否能够从服务端(/var/www/html)下载文件到客户机端(/var/www/html). (3) 修改rsync的配置文件/etc/rsyncd.conf,实现客户机端(/var/www/html)能上传文件到服务端的(/var/www/html)位置.在客户机