rsync的文件同步,复制,镜像,增量备份

标签: rsync 文件同步 复制 | 发表时间:2012-09-04 09:28 | 作者:祥哥哥
出处:http://www.nb03.com/

              http://www.huzs.net/?p=920

 

 

rsync是一个linux下的:快速,多功能,远程(本地)文件复制工具。
官方网站:http://rsync.samba.org/
维基百科:http://zh.wikipedia.org/wiki/Rsync

rsync是Unix下的一款应用软件,它能同步更新两处计算机的档案与目录,并适当利用差分编码以减少数据传输。rsync中一项与其他大部分类似程式或协定中所未见的重要特性是镜像对每个目标只需要一次传送。rsync可拷贝/显示目录属性,以及拷贝档案,并可选择性的压缩以及递归拷贝。

在常驻模式(daemon mode)下,rsync默认监听TCP埠873,以原生rsync传输协定或者透过远程shell如RSH或者SSH伺服档案。SSH情况下,rsync用户端执行程式必须同时在本地和远程机器上安装。

rsync是自由软件,以GNU通用公共许可证发行。

rsync 首度发布于1996年6月19日。原始作者为安德鲁·垂鸠(Andrew Tridgell)与保罗·麦可拉斯(Paul Mackerras)。

rsync 3.0于2008年3月1日发行。

Rsync 的特色:

  1. 快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件。
  2. 安全:rsync 允许通过 ssh 协议来加密传输数据。
  3. 更少的带宽:rsync 在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。
  4. 特权:安装和执行 rsync 无需特别的权限

基本语法:

rsync options source destination

源和目标都可以是本地或远程,在进行远程传输的时候,需要指定登录名、远程服务器及文件位置

样例:

1 在本地机器上对两个目录进行同步

$ rsync -zvr /var/opt/installation/inventory/ /root/temp
building file list … done
sva.xml
svB.xml
.
sent 26385 bytes received 1098 bytes 54966.00 bytes/sec
total size is 44867 speedup is 1.63
$

参数:

  1. -z 开启压缩
  2. -v 详情输出
  3. -r 表示递归

2 利用 rsync -a 让同步时保留时间标记

rsync 选项 -a 称为归档模式,执行以下操作

  1. 递归模式
  2. 保留符号链接
  3. 保留权限
  4. 保留时间标记
  5. 保留用户名及组名
$ rsync -azv /var/opt/installation/inventory/ /root/temp/
building file list … done
./
sva.xml
svB.xml
.
sent 26499 bytes received 1104 bytes 55206.00 bytes/sec
total size is 44867 speedup is 1.63
$

3 仅同步一个文件

$ rsync -v /var/lib/rpm/Pubkeys /root/temp/
Pubkeys

sent 42 bytes received 12380 bytes 3549.14 bytes/sec
total size is 12288 speedup is 0.99

4 从本地同步文件到远程服务器

$ rsync -avz /root/temp/ [email protected]:/home/thegeekstuff/temp/
Password:
building file list … done
./
rpm/
rpm/Basenames
rpm/Conflictname

sent 15810261 bytes received 412 bytes 2432411.23 bytes/sec
total size is 45305958 speedup is 2.87

就像你所看到的,需要在远程目录前加上 ssh 登录方式,格式为 username@machinename:path

5 同步远程文件到本地

和上面差不多,做个相反的操作

$ rsync -avz [email protected]:/var/lib/rpm /root/temp
Password:
receiving file list … done
rpm/
rpm/Basenames
.
sent 406 bytes received 15810230 bytes 2432405.54 bytes/sec
total size is 45305958 speedup is 2.87

同步远程服务器上的文件夹到本地,如果本地有的文件,远程没有,则删除之。
rsync -r -a -v -e "ssh -l root" --delete 192.168.0.200:/www/web/ /www/web/
6 同步时指定远程 shell

用 -e 参数可以指定远程 ssh ,比如用 rsync -e ssh 来指定为 ssh

$ rsync -avz -e ssh [email protected]:/var/lib/rpm /root/temp
Password:
receiving file list … done
rpm/
rpm/Basenames

sent 406 bytes received 15810230 bytes 2432405.54 bytes/sec
total size is 45305958 speedup is 2.87

7 不要覆盖被修改过的目的文件

使用 rsync -u 选项可以排除被修改过的目的文件

$ ls -l /root/temp/Basenames
total 39088
-rwxr-xr-x 1 root root 4096 Sep 2 11:35 Basenames

$ rsync -avzu [email protected]:/var/lib/rpm /root/temp
Password:
receiving file list … done
rpm/

sent 122 bytes received 505 bytes 114.00 bytes/sec
total size is 45305958 speedup is 72258.31

$ ls -lrt
total 39088
-rwxr-xr-x 1 root root 4096 Sep 2 11:35 Basenames

8 仅仅同步目录权(不同步文件)

使用 -d 参数

$ rsync -v -d [email protected]:/var/lib/ .
Password:
receiving file list … done
logrotate.status
CAM/
YaST2/
acpi/

sent 240 bytes received 1830 bytes 318.46 bytes/sec
total size is 956 speedup is 0.46

9 查看每个文件的传输进程

使用 – -progress 参数

$ rsync -avz – -progress [email protected]:/var/lib/rpm/ /root/temp/
Password:
receiving file list …
19 files to consider
./
Basenames
5357568 100% 14.98MB/s 0:00:00 (xfer#1, to-check=17/19)
Conflictname
12288 100% 35.09kB/s 0:00:00 (xfer#2, to-check=16/19)
.
.
.
sent 406 bytes received 15810211 bytes 2108082.27 bytes/sec
total size is 45305958 speedup is 2.87

10 删除在目的文件夹中创建的文件

用 – -delete 参数

# Source and target are in sync. Now creating new file at the target.
$ > new-file.txt

$ rsync -avz – -delete [email protected]:/var/lib/rpm/ .
Password:
receiving file list … done
deleting new-file.txt
./

sent 26 bytes received 390 bytes 48.94 bytes/sec
total size is 45305958 speedup is 108908.55

11 不要在目的文件夹中创建新文件

有时能只想同步目的地中存在的文件,而排除源文件中新建的文件,可以使用 – -exiting 参数

$ rsync -avz –existing [email protected]:/var/lib/rpm/ .
[email protected]′s password:
receiving file list … done
./

sent 26 bytes received 419 bytes 46.84 bytes/sec
total size is 88551424 speedup is 198991.96

12 查看源和目的文件之间的改变情况

用 -i 参数

$ rsync -avzi [email protected]:/var/lib/rpm/ /root/temp/
Password:
receiving file list … done
>f.st…. Basenames
.f….og. Dirnames

sent 48 bytes received 2182544 bytes 291012.27 bytes/sec
total size is 45305958 speedup is 20.76

输出结果中在每个文件最前面会多显示 9 个字母,分别表示为

> 已经传输
f 表示这是一个文件
d 表示这是一个目录
s 表示尺寸被更改
t 时间标记有变化
o 用户被更改
g 用户组被更改

13 在传输时启用包含和排除模式

$ rsync -avz – -include ‘P*’ – -exclude ‘*’ [email protected]:/var/lib/rpm/ /root/temp/
Password:
receiving file list … done
./
Packages
Providename
Provideversion
Pubkeys

sent 129 bytes received 10286798 bytes 2285983.78 bytes/sec
total size is 32768000 speedup is 3.19

14 不要传输大文件

使用 – – max-size 参数

$ rsync -avz – -max-size=’100K’ [email protected]:/var/lib/rpm/ /root/temp/
Password:
receiving file list … done
./
Conflictname
Group
Installtid
Name
Sha1header
Sigmd5
Triggername

sent 252 bytes received 123081 bytes 18974.31 bytes/sec
total size is 45305958 speedup is 367.35

15 传输所有文件

不管有没有改变,再次把所有文件都传输一遍,用 -W 参数

# rsync -avzW [email protected]:/var/lib/rpm/ /root/temp
Password:
receiving file list … done
./
Basenames
Conflictname
Dirnames
Filemd5s
Group
Installtid
Name

sent 406 bytes received 15810211 bytes 2874657.64 bytes/sec
total size is 45305958 speedup is 2.87

 

相关 [rsync 文件同步 复制] 推荐:

rsync的文件同步,复制,镜像,增量备份

- - 开心平淡对待每一天。热爱生活
rsync是一个linux下的:快速,多功能,远程(本地)文件复制工具. 官方网站:http://rsync.samba.org/. 维基百科:http://zh.wikipedia.org/wiki/Rsync. rsync是Unix下的一款应用软件,它能同步更新两处计算机的档案与目录,并适当利用差分编码以减少数据传输.

翻译《The rsync algorithm》

- AWard - CSDN博客推荐文章
     最近在学习Rsync工具,在对Rsync算法大加赞赏之余,决定将《The rsync algorithm 》翻译,有不正之处 还请指正. 安德鲁Tridgell 保罗马克拉斯  部计算机科学 澳大利亚国立大学 堪培拉,ACT 0200,澳大利亚.        本报告介绍了将一台计算机上的文件内容同步到另一台机器上的文件的算法(同步后保证文件内容需要一致).

linux配置ssh+rsync

- - CSDN博客推荐文章
sftp    文件共享 类似ftp  ssh  secure file transfer client. scp    文件共享 类似cp. #PermitRootLogin yes    改成no 禁止root直接登录. #Port 22    改变ssh的默认端口号   要打开注释. 登录  ssh  [email protected]  然后输入密码就好了.

Rsync同步使用

- - 开源软件 - ITeye博客
rsync是类unix系统下的数据镜像备份工具——remote sync. /etc/rsyncd/rsyncd.conf 是你刚才编辑的rsyncd.conf的位置. 也可以在/etc/rc.d/rc.local里加入让系统自动启动等. rsync -参数 用户名@同步服务器的IP::rsyncd.conf中那个方括号里的内容 本地存放路径 如:.

rsync 的核心算法

- - 酷壳 - CoolShell.cn
rsync是unix/linux下同步文件的一个高效算法,它能同步更新两处计算机的文件与目录,并适当利用查找文件中的不同块以减少数据传输. rsync中一项与其他大部分类似程序或协定中所未见的重要特性是镜像是只对有变更的部分进行传送. rsync可拷贝/显示目录属性,以及拷贝文件,并可选择性的压缩以及递归拷贝.

inotify-rsync实时同步脚本

- lostsnow - 无网不剩
rsync是linux下一款非常强大的同步工具,采用差异同步的方法,只上传文件/文件夹的不同部分,同时可以对上传部分先进行压缩,所以rsync的传输效率是很高的. 但rsync也有缺点,最大的问题就是每次执行rsync命令都会遍历目标目录,当文件不多时,这没什么问题,一旦文件数到了一定规模,那么每次遍历都会消耗很多资源.

rsync服务安装和配置

- - CSDN博客推荐文章
作者: javaboy2012. 如果安装了,则需要做如下配置和修改. 修改 /etc/xinetd.d/rsync 下的内容. disable = yes 改为 disable = no. 新建:vi /etc/rsyncd.conf.  注意:客户端必须执行同步命令触发同步操作..  要实现定时同步,可以通过crontab -e加入定时任务来实现..

[转]用rsync对网站进行镜像备份

- - 小鸥的博客
对系统管理员来说,平时的工作重心应该集中在维护系统正常运转,能够正常提供服务上,这里往往牵涉到一个数据备份的问题,在我所了解. 的情况中,有80%的系统管理员不是太关心自己服务器的安全性,但往往对备分镜像的技术相当感兴趣,但由于商业产品的软硬件价格都相当高. 这里准备介绍的rsync就是这样的软件,它可以满足绝大多数要求不是特别高的备份需求.

lsyncd实时同步搭建指南——取代rsync+inotify

- - SegmentFault 最新的文章
使用这两个组合的好处在于,它们都是最基本的软件,可以通过不同选项做到很精确的控制,比如排除同步的目录,同步多个模块或同步到多个主机. 搭建过程参考 Linux下同步工具inotify+rsync使用详解 或 这里. 后来听同事说 sersync 这么个工具可以提高同步的性能,也解决了同步大文件时出现异常的问题,所以就尝试了一下.

基于rsync的文件增量同步方案

- - 美团点评技术团队
犀牛云盘是美团点评内部一个基于美团云的文件协作平台,核心是文件的结构化云存储以及上传和下载的体验优化. 文件同步是云盘功能的重要部分(包括文件内容的同步和文件增删的同步,应该有上传、下载、创建、删除等动作,但在本文的叙述中,主要关注文件内容的传输,即上传、下载),如何快速高效地进行文件同步,就成了云盘亟需解决的技术难题.