`
san_yun
  • 浏览: 2639743 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

使用rsync同步文件

 
阅读更多

什么是 rsync?

rsync 应用程序是在 Linux® 和 UNIX® 上广泛使用的文件传输和同步程序,而且它已经移植到了 Windows® 上。它的关键特性是一个非常快的算法,它只通过数据链路发送文件差异,因此把机器之间传输的数据总量降低到最低限度。(如果使用 File Transfer Protocol [FTP] 或 rcp 和 scp 等实用程序,那么即使只修改了一个字节,也会发送完整的文件)。当然,rsync 并非只能处理现有的文件:它还可以处理只在链路一端存在的文件和目录。最后,通过压缩数据来优化通信,因此可以通过非宽带连接使用这个工具。

使用 rsync

我们使用 rsync 把本地文件直接同步到一个远程服务器。还可以把远程服务器同步到本地,或者同步两个本地目录,但是不能同步两个远程服务器。

效果相同但格式不同的两个rsync命令

1
2
3
4
5
6
7
8
9
10
rsync --compress
 --recursive
 --delete
 --links
 
--times
 --perms
 --owner
 --group
 
--verbose
 --progress
 --stats
 
--rsh
="ssh"
 
--exclude
 "*bak"
 --exclude
 "*~"
 
/
my/
path/
at/
the/
laptop/*
 myserver:/
some/
path/
at/
the/
server
 
rsync -zrltpogve
 "ssh"
 --progress
 --stats
 --delete
 
--exclude
 "*bak"
 --exclude
 "*~"
 
/
my/
path/
at/
the/
laptop/*
 myserver:/
some/
path/
at/
the/
server

注意,上面命令中选项的次序是任意的,而且大多数选项有短格式。首先,–compress(或 -z)指定将压缩数据,这可以节省带宽。应该总是使用这个选项。(在非常高速的数据链路上,不进行压缩可能也可以,但是对于大多数远程连接,压缩都是有帮 助的)。可以使用补充选项 –compress-level=level 指定压缩的级别;但是,通常可以接受标准的压缩级别。

–recursive (-r) 选项让 rsync 递归地复制所有目录。这会复制目录中的所有文件,包括其中的子目录及其内容。如果不需要这个功能,可以使用 –dirs 选项 (-d) 产生相反的效果:跳过子目录及其内容。

在默认情况下,rsync 把需要的文件复制到目标计算机,但是并不删除额外文件。通过使用 –delete 选项,目标目录会与原目录保持完全一致。但是要注意:如果把一个空目录同步到远程目录,就会删除远程目录中的所有内容!

如果原目录中有符号链接,–links 选项(或 -l)会在目标目录中重新创建这些符号链接。另一种方法是使用 –copy-links(或 -L)复制符号链接指向的文件或目录,而不是复制符号链接本身。如果有符号链接指向复制的树之外的文件或目录(这是一种安全风险),可以使用 –copy-unsafe-links。–safe-links 选项忽略这样的链接,这更安全。

后面四个选项(–times、–perms、–owner 和 –group 或 -tpog)分别让 rsync 保持原来的更新时间戳、权限、所有者和组信息。同时指定所有这些选项的简便方法是使用 –archive(或 -a),这还会设置 –recursive 和 –links 选项。

后面三个选项(–verbose、–progress 和 –stats)提供关于 rsync 正在执行的操作的大量信息。如果对这些信息不感兴趣,只需跳过它们,除非出现错误,rsync 会悄悄地运行。

尽管当前的 rsync 版本默认使用 ssh,但是可以使用 –rsh(或 -e)选项强制使用 ssh。如果需要使用额外的 ssh 参数(例如希望让 ssh 使用非标准端口),可以添加这些参数,例如 –rsh “ssh -p 12345″。

可以使用 –exclude 选项(和对应的 –include)选择要同步的文件。在这个示例中,排除了常见的备份文件。应该根据需要排除和包含文件,从而优化发送的内容。

最后,指定源路径和目标路径。不要忘记最后的 /*,否则结果可能不符合期望。可以通过查看文档了解 some/path、some/path/ 和 some/path/* 之间的差异。但是,使用 /* 是最保险的方法。

可以使用 -a 选项 (–archive) 简化清单 1 中的命令,见 清单 2。(如果作为根在服务器上运行 rsync,-a 选项可能会复制一些额外的内容 — 请查阅文档 — 这不是一种安全的做法)。rsync 还有许多选项;可以通过 rsync –help 和 man rsync 了解所有选项。

 

参考:http://blog.prosight.me/index.php/2009/09/345

分享到:
评论

相关推荐

    Rsync实现文件备份同步

    Rsync是一款开源的文件传输协议,其核心功能是能够在本地或网络环境中快速地同步文件和目录。Rsync以其增量复制技术著称,只传输两份文件之间的差异部分,从而大大减少了数据传输量。此外,Rsync还支持压缩、排除...

    rsync同步的艺术

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

    rsync+inotify 实时远程同步

    Rsync 是一个功能强大且广泛使用的文件同步工具,它可以快速、安全、可靠地同步文件。在服务器之间同步文件时,Rsync 是一个不二之选。Inotify 是一个 Linux 内核提供的文件系统事件监控机制,它可以实时监控文件...

    Windows平台下使用rsync实现文件同步.docx

    使用 rsync 实现文件同步的优点是能够快速、可靠地同步文件,且支持双向同步、incremental 备份、删除文件恢复等功能。 在 Windows 平台下,cwRsync 软件能够与 Windows 的文件系统集成,实现文件的同步和备份。...

    inotify和rsync实现文件同步.zip

    # 使用rsync同步文件或目录 rsync -avz --delete --exclude='*.tmp' $FILE ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR} fi done ``` 在这个脚本中,`inotifywait`持续监听`WATCH_DIR`目录下的所有文件和子目录...

    linux 下rsync文件夹同步配置

    rsync是一种用于文件传输的开源软件,其核心功能是文件同步,能够快速、增量地同步文件或目录。它利用“差分压缩”算法,只传输两个文件差异部分,极大提高了数据传输效率。此外,rsync支持多种传输协议,如TCP/IP,...

    rsync+inotify实现服务器之间文件实时同步

    rsync是一种文件同步工具,可以实现触发式的文件同步,但使用crontab守护进程方式进行触发同步的数据和实际数据会有差异,而inotify可以监控文件系统的各种变化,当文件有任何变动时,就触发rsync同步,这样刚好解决...

    Windows中配置Rsync同步文件的方法 v 1.0

    在互联网中,Windows环境中使用Rsync远程同步数据;使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他rsync主机同步。

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

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

    linux下Rsync+sersync实现文件数据实时同步

    2. 使用sersync实时监听和同步文件变化。 3. 设置定时任务(如Cron),定期运行Rsync进行全量同步和一致性检查。 例如,创建一个Cron任务: ```bash 0 0 * * * rsync -avz --delete /local/directory user@remote_...

    如何保持Linux服务器间的文件同步

    要使用Rsync同步文件,可以执行以下命令: ```bash # 同步本地目录到远程服务器 rsync -avz --delete /local/path user@remote:/remote/path # 同步远程服务器到本地目录 rsync -avz --delete user@remote:/remote...

    图解rsync数据同步部署文档.docx

    rsync 的主要特点是可以在本地或远程主机之间同步文件,支持多种文件系统,包括 Unix、Linux、Windows 等平台。rsync 的工作原理是通过比较源文件和目标文件的 checksum,来确定哪些文件需要被同步,从而减少数据...

    linux中rsync异步服务器实现文件同步与备份.docx

    该脚本使用 Rsync 工具来同步文件,并使用 SSH protocol 来确保同步过程的安全性。 Rsync 工具提供了多种选项来控制同步过程。例如,-a 选项可以递归地同步文件,而 -z 选项可以压缩文件以加快同步速度。-delete ...

    Rsync+ssh双机同步测试及问题解决

    问题:rsync同步时,出现“ permission denied”错误。 解决方案:检查文件和目录的权限,确保rsync用户有足够的权限。 2. 解决方案二 问题:rsync同步时,出现“connection refused”错误。 解决方案:检查ssh...

    Linux下rsync文件同步详解

    rsync 的基本使用包括同步文件、目录、软链接和硬链接。rsync 命令的基本格式为: `rsync [options] 源路径 目标路径` 其中,options 是 rsync 的选项,用于控制同步的行为。常用的选项包括: * `-t`:同步时间戳...

    CentOS7配置rsync实现文件同步1

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

    Git+rsync构建文件同步工具文件

    **Rsync** 是一个用于在本地或远程系统之间快速同步文件的工具,它支持增量传输,这意味着只有文件的变化部分才会被传输,极大地提高了效率。rsync广泛应用于备份和镜像创建。 **在Windows下配置Git+rsync:** 1. *...

    rsync数据同步手册.pdf

    rsync是一种快速、可靠的文件同步工具,广泛应用于数据备份、同步和复制。下面是关于rsync数据同步手册的知识点总结: 一、系统环境 在开始使用rsync之前,需要了解系统环境的基本配置。包括操作系统、文件系统、...

Global site tag (gtag.js) - Google Analytics