`
lxy2330
  • 浏览: 469236 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

RSYNC使用1

阅读更多

rsync 有什么突出优点呢?首先,它被设计成只传送文件的不同部分,而非传送整个文件,以加速文件传输。比如,我正在写作本文,那我就可以现在使用 rsync 复制一次,而之后再进行一次传输。第二次(第三次、第四次……)父子文件的时候,rsync 只传送文件的不同部分。这将极大地节省时间,特别是在日常备份的过程中复制整个目录的时候。第一次复制会消耗较长时间,而下一次的传输就少多了(如果你每 天都不大幅修改目录的内容的话)。

rsync的另一个好处是它可以保留文件地所有权和访问权限信息以及复制符号链接,简而言之,它被设计成灵巧地掌控你的文件。

要安装 rsync,你应该不需要做什么 --- 一般的 Linux distro 都应该缺省安装它了。如果没有的话,你应该能在你的 distro 地软件包仓库里找到并安装它。如果你要把数据复制到远程系统上的话,两台机器都需要 rsync。

当你使用 rsync 把文件复制到另一台主机地时候,rsync 通常使用一个远程 shell,如 ssh 或 rsh 来工作。在下面的例子中,出于安全性的考虑,我们将只使用 ssh。当然,我们也可以访问使用 rsync daemon 的远程主机,不过,既然现在 ssh 几乎是无处不在的了,我们也没有必要费力气使用一个 daemon 了。

了解 rsync

rsync 的基本语法非常简单 --- 只要运行 rsync [options] source destination 就可以把文件从 source 复制到 destination。

所以,举个例子,如果你要把你归属目录里的文件复制到USB硬盘上去,你可以这么做:rsync -a /home/user/dir/ /media/disk/dir/ 。这里需要强调一下,对于 rsync 来说 "/home/user/dir/" 和 "/home/usr/dir" 是截然不同地。如果没有最后的斜线,rsync 会整个地复制目录;而有了最后的斜线,rsync 将只复制目录中的内容,而不创建目录本身。如果你想复制一个目录结构,那你就应该去掉结尾的斜线,比如在镜像 /var/www 到其他机器的时候或类似的情况。

在这个例子中,我加入了归档开关 (-a),这实际相当于同时使用几个 rsync 开关。它包括递归与复制符号链接开关、保留组与属主属性开关,总之就是让 rsync 适用于进行归档拷贝。注意,-a 不保留硬链接;如果你需要的话,还应该加上硬链接开关 (-H)。

另一个常用开关是 verbose (-v),这将让 rsync 报告更多信息。你还可以使用两个或三个 -v 开关 --- -v 将给出一些信息,-vv 会给出更多信息,而 -vvv 会把所有信息都给出来。

如果没有特别的选项,rsync 会连隐藏文件 (以 . 开头的文件) 一起复制的。如果你希望不复制隐藏文件,你应该加入开关 --exclude=".*/" 。你还可以使用 --exclude 来防止复制 vim 交换文件 (.swp) 或其他一些程序的自动备份文件 (.bak) 。

安资资源站

进行本地拷贝

假设你有一个外接 USB 或 1394 硬盘,你希望把 home 目录复制到外接驱动器上。一个不错的方法是把重要数据保存在一个顶级目录中,之后复制到外接硬盘地备份目录之中,命令如下:

rsync -avh /home/usr/dir/ /media/disk/backup/

如果你想保证本地删除的文件也在外接硬盘上被删除,你需要使用 --deleted 开关,如下:

rsync -avh --delete /home/user/dir/ /media/disk/backup

小心使用这个开关; 这个开关可能会让你在无意识的情况下删除一批无辜文件。事实上,当你要用 rsync 之前,使用 --dry-run 开关看一下要执行哪些操作而不真正同步文件可能是个好主意。如果你已经开始了一次 rsync 传输,却突然意识到这条命令可能造成数据损失的话,应该立刻用 Ctrl-C 来中止执行。一些文件可能已经损失掉了,不过你还有机会保存住剩下的。

进行远程拷贝

想要把文件复制到远程主机上? 没问题 --- 你需要做的就是加入主机和用户信息。举个例子,如果你想把同一个目录复制到远程主机上,你应该用:

rsync -avhe ssh --delete /home/user/dir/ user@remote.host.com:dir/

如果你想知道文件传输的速度,以及还有多少需要复制,可以加上 --progress 开关:

rsync --progress -avhe ssh --delete /home/user/dir/ user@remote.host.com:dir/

如果你不想每次使用 rsync 都被提示一次输入密码,确认一下你使用了 SSH 公钥机制而不是密码。要想这么做,你应该使用 ssh-keygen -t dsa ,并在密码提示环节直接按回车,以在本机上生成公钥。之后,使用 ssh-copy-id -i .ssh/id_dsa.pub user@remote.host.com 把公钥复制到远端主机上。

如果你想从远端主机上找回一些以前的备份文件,可以使用如下命令:

rsync -avze ssh remote.host.com:/home/user/dir/ /local/path/

其中,z 开关会在传输过程中压缩数据,如果你在复制的文件在本地已经存在了,rsync 将不再传输 --- 这和把文件从本地传送到远端主机没什么区别。

用一个脚本进行封装

一旦你指出了哪些目录需要进行同步,确定了同步文件的命令,就可以很容易地把这些命令封装在一个简单脚本里。这是一个简单的例子:

rsync --progress -avze ssh --delete /home/user/bin/ user@remote.host.com:bin/

rsync --progress -avze ssh --delete /home/user/local/data/ user@remote.host.com:local/data/

rsync --progress -avze ssh --delete /home/user/.tomboy/ user@remote.host.com:/.tomboy/

如果你是在交互模式下运行 rsync,可以使用 --progress 开关。如果不是交互模式的话,也就不需要这个开关了。

如果你看 rsync 的 man page 有可能会被它弄糊涂了。不过,当有了一些 rsync 的经验之后,你会发现设置 rsync 任务并不困难,它将为某天可能会来临的硬盘故障和数据损失做准备。

分享到:
评论

相关推荐

    Rsync使用指南

    **Rsync使用指南** **Rsync简介** Rsync是一款强大的数据同步工具,广泛应用于服务器之间的文件同步和备份。它的核心特点在于能高效地对比和传输文件,只传输两份文件的不同部分,从而节省了大量的网络带宽。Rsync...

    linux rsync命令使用手册

    1. **快速检查算法**:默认情况下,Rsync 使用一种“快速检查”算法来查找那些在大小或最后修改时间上发生变化的文件。 2. **属性更新**:当快速检查表明文件数据无需更新时,可以直接在目标文件上更新其他保持属性...

    cygwin 下 rsync-3.0.8安装及使用说明

    通过阅读“rsync安装包及安装指导”和“使用说明”,你可以更深入地了解rsync的各种特性,包括错误处理、日志记录、以及如何创建定期同步的任务。结合实际操作,rsync将成为你数据管理和备份的强大工具。 总之,...

    aix下rsync安装包

    本篇文章将详细介绍在AIX环境下如何安装和使用`rsync`,以及它在跨平台数据同步中的重要性。 `rsync`是一款高效的数据同步软件,它能实现本地或远程文件的快速备份与迁移。其主要特点包括增量传输、只更新变化部分...

    rsync服务器搭建及使用说明

    在本文中,我们将深入探讨rsync服务器的搭建和使用方法。 首先,我们来了解一下rsync的基本概念。rsync是Remote Sync的缩写,它支持增量传输,能够仅传输文件的改动部分,从而大大提高了数据同步的效率。rsync还...

    ssh 使用rsync 工具

    ### SSH使用rsync工具详解 #### 一、引言 在IT运维管理中,文件同步是一项常见的需求。尤其是在处理大型目录结构时,如何高效、安全地进行数据同步变得尤为重要。`rsync`作为一种强大的文件同步工具,结合SSH协议...

    window Git完美使用rsync.assets.7z

    在Windows环境下,Git和rsync的结合使用可以提供高效、灵活的版本控制和文件同步解决方案。这个名为"window Git完美使用rsync.assets.7z"的压缩包可能包含了一套详细的指南,帮助用户在Windows上配置和利用这两个...

    android_external_rsync,rsync的android本地端口.zip

    本文将深入探讨rsync在Android环境下的应用,以及如何在Android系统中移植和使用rsync。 一、rsync的核心特性 1. 增量传输:rsync能够只传输文件的差异部分,大大减少了数据传输的时间和流量,特别适合于大文件的...

    Linux下rsync安装配置使用教程.doc

    1. **安装rsync**:通过`rpm -q rsync`命令来查询rsync是否已经安装,如果没有,则需要使用`yum install rsync`或`rpm -ivh rsync_xxx.rpm`进行安装。 2. **配置rsyncd.conf**:rsync的主要配置文件是`/etc/rsyncd....

    rsync_架设手册

    在rsync的使用过程中,可能会遇到权限、网络连接或配置错误等问题,仔细检查rsync的日志文件(默认为`/var/log/rsync.log`),并根据错误信息调整配置或解决网络障碍。 #### 8. 未尽事宜 rsync的配置与使用涉及多...

    CentOS7配置rsync实现文件同步1

    《使用CentOS7配置rsync实现文件同步》 rsync是一款强大的文件同步工具,它能够高效地在不同服务器之间同步目录和文件,尤其在Linux环境中广泛使用。rsync的特性在于其采用的“rsync算法”,该算法仅传输文件的差异...

    rsync-3.1.1pre1.tar

    rsync-3.1.1pre1是我们讨论的版本,它代表了rsync在某个时间点的预发布版本,通常包含了开发者最新的改进和修复。 rsync的核心特性在于它的增量同步技术,能够快速地识别并仅传输源目录与目标目录之间的差异部分,...

    一键安装Rsync脚本

    1. **部署Rsync服务端**:脚本会自动处理Rsync的安装,包括下载、编译和安装过程,确保服务端环境中已经具备运行Rsync所需的所有组件。 2. **生成rsyncd.conf配置文件**:这是Rsync服务端的核心配置文件,用于定义...

    rsync配置与使用(v2.0)

    【rsync配置与使用(v2.0)】 rsync是一款广泛应用于类Unix系统的数据同步工具,主要用于实现远程或本地的数据备份和同步。其名称“remote sync”表明了其主要功能,即远程同步。以下是rsync的主要特点: 1. **镜像...

    rsync数据同步手册.pdf

    rsync数据同步手册 rsync是一种快速、可靠的文件同步工具,广泛应用于数据备份、同步和复制。下面是关于rsync数据同步...rsync数据同步手册提供了rsync的使用指南,可以帮助我们更好地使用rsync实现数据同步和备份。

    rsync同步的艺术

    1. rsync 的基本使用:rsync 可以在两个文件之间同步文件的内容和权限,例如:$ rsync main.c machineB:/home/userB1。这样可以确保目的端的文件内容和源端保持一致。 2. rsync 不会同步文件的“modify time”,...

    rsync备份工具.pdf

    rsync是一款在Linux系统下广泛使用的数据镜像备份工具,它可以用于远程同步,本地复制,也可以与支持SSH或rsync协议的主机进行同步。rsync使用了所谓的“rsync算法”来增量地传输文件,这个算法使得rsync在第一次...

    rsync备份海量文件时占用大量内存的解决方法

    linux发行版中大多都自带rsync,不过版本比较低,一般...备份的时候,rsync大约占用了将近2G的内存,大量内存的占用,造成服务器物理内存不足,进而使用到swap,然后产生更高的iowait(交换内存),进而造成rsync列表更慢

    rsync命令详细解答

    例如,使用`aptitude`安装`rsync`的方法为: ``` $ aptitude install rsync ``` 2. **基本同步命令**:`rsync`的基本语法如下: ``` $ rsync [选项] 源文件或目录 目标文件或目录 ``` 其中,源文件或目录...

Global site tag (gtag.js) - Google Analytics