千家信息网

如何使用rsync

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章将为大家详细讲解有关如何使用rsync,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。rsync是可以实现增量备份的工具。配合任务计划,rsync能实现定时或
千家信息网最后更新 2025年01月19日如何使用rsync

这篇文章将为大家详细讲解有关如何使用rsync,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

rsync是可以实现增量备份的工具。配合任务计划,rsync能实现定时或间隔同步,配合inotify或sersync,可以实现触发式的实时同步。

rsync语法

$ rsync options source destination

source和destination可以是本地或远程。在远程的情况下,需要指定登录名、远程服务器的名称和位置。

rsync使用示例

1. 在本地服务器上同步两个目录

用rsync – zvr在本地服务器上同步两个目录

$ rsync -zvr /var/opt/installation/inventory/ /root/tempbuilding file list ... donesva.xmlsvB.xml.sent 26385 bytes  received 1098 bytes  54966.00 bytes/sectotal size is 44867  speedup is 1.63

在上面rsync例子中: • –z:允许压缩 • –v:冗长 • –r:递归 注:Rsync不会同步源文件或目录的时间戳

$ ls -l /var/opt/installation/inventory/sva.xml /root/temp/sva.xml-r--r--r-- 1 bin  bin  949 Jun 18  2009 /var/opt/installation/inventory/sva.xml-r--r--r-- 1 root bin  949 Sep  2  2009 /root/temp/sva.xml
2. 用rsync –a同步时间戳

rsync的-a选项是archive的意思,加了之后有以下作用: • 递归模式 • 同步软链接 • 同步权限 • 同步时间戳 • 同步属主和属组 现在,我们执行与例1一样的命令,不同的是使用-a选项。

$ rsync -azv /var/opt/installation/inventory/ /root/temp/building file list ... done./sva.xmlsvB.xml.sent 26499 bytes  received 1104 bytes  55206.00 bytes/sectotal size is 44867  speedup is 1.63

我们可以看到,rsync将源目录下文件的时间戳也同步过来了。

$ ls -l /var/opt/installation/inventory/sva.xml /root/temp/sva.xml-r--r--r-- 1 root  bin  949 Jun 18  2009 /var/opt/installation/inventory/sva.xml-r--r--r-- 1 root  bin  949 Jun 18  2009 /root/temp/sva.xml
3. 只同步一个文件

指定文件名称,只同步一个文件

$ rsync -v /var/lib/rpm/Pubkeys /root/temp/Pubkeyssent 42 bytes  received 12380 bytes  3549.14 bytes/sectotal size is 12288  speedup is 0.99
4. 将本地文件同步到远程服务器

当同步到远程服务器时,我们需要指定用户名、远程服务器的IP地址和目标路径。格式为:username@remote_server_ip:path

$ rsync -avz /root/temp/ linuxprobe@192.168.200.10:/home/linuxprobe/temp/Password:building file list ... done./rpm/rpm/Basenamesrpm/Conflictnamesent 15810261 bytes  received 412 bytes  2432411.23 bytes/sectotal size is 45305958  speedup is 2.87
5. 将远程文件同步到本地服务器
$ rsync -avz linuxprobe@192.168.200.10:/var/lib/rpm /root/tempPassword:receiving file list ... donerpm/rpm/Basenames.sent 406 bytes  received 15810230 bytes  2432405.54 bytes/sectotal size is 45305958  speedup is 2.87
6. 指定使用某一shell同步

远程同步时,Rsync可以指定使用某一shell进行安全传输。如:使用rsync –e ssh选择ssh进行安全连接。

$ rsync -avz -e ssh linuxprobe@192.168.200.10:/var/lib/rpm /root/tempPassword:receiving file list ... donerpm/rpm/Basenamessent 406 bytes  received 15810230 bytes  2432405.54 bytes/sectotal size is 45305958  speedup is 2.87
7. 不覆盖目标位置已改变的文件

如果目标位置的文件已被修改,而我们不希望旧文件覆盖它时,可以使用-u选项。下面例子中,目标位置的文件Basenames已经被修改,使用-u 选项是它不被旧文件覆盖。

$ ls -l /root/temp/Basenamestotal 39088-rwxr-xr-x 1 root root        4096 Sep  2 11:35 Basenames$ rsync -avzu linuxprobe@192.168.200.10:/var/lib/rpm /root/tempPassword:receiving file list ... donerpm/sent 122 bytes  received 505 bytes  114.00 bytes/sectotal size is 45305958  speedup is 72258.31$ ls -lrttotal 39088-rwxr-xr-x 1 root root        4096 Sep  2 11:35 Basenames
8. 只同步目录树结构(不包括文件)

使用rsync – d选项只将目录树从源位置同步至目标位置。下面的示例中,以递归方式只同步目录树而不同步目录中的文件。

$ rsync -v -d linuxprobe@192.168.200.10:/var/lib/ .Password:receiving file list ... donelogrotate.statusCAM/YaST2/acpi/sent 240 bytes  received 1830 bytes  318.46 bytes/sectotal size is 956  speedup is 0.46
9. 查看rsync进度

使用rsync –progress选项可以查看rsync进度,如多少文件已经被拷贝,完成率是多少等

$ rsync -avz --progress linuxprobe@192.168.200.10:/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/sectotal size is 45305958  speedup is 2.87
10. 删除目标位置创建的文件

若我们希望rsync时删除在源位置不存在而在目标位置存在的文件,可以使用-delete选项。 此例中,我们在目标位置创建了一个新文件名为new-file.txt.,在同步过程中,-delete选项删除了new-file.txt文件

# Source and target are in sync. Now creating new file at the target.$ > new-file.txt$ rsync -avz --delete linuxprobe@192.168.200.10:/var/lib/rpm/ .Password:receiving file list ... donedeleting new-file.txt./sent 26 bytes  received 390 bytes  48.94 bytes/sectotal size is 45305958  speedup is 108908.55
11. 在目标位置不创建新文件

使用-existing选项使得在同步时只同步目标位置存在的文件,而不创建新文件。

#在源位置创建新文件new-file.txt[/var/lib/rpm ]$ > new-file.txt#同步目录$ rsync -avz --existing root@192.168.1.2:/var/lib/rpm/ .root@192.168.1.2's password:receiving file list ... done./sent 26 bytes  received 419 bytes  46.84 bytes/sectotal size is 88551424  speedup is 198991.96
12.查看源和目标的不同文件或目录

源位置:

$ ls -l /var/lib/rpm-rw-r--r-- 1 root root  5357568 2010-06-24 08:57 Basenames-rw-r--r-- 1 root root    12288 2008-05-28 22:03 Conflictname-rw-r--r-- 1 root root  1179648 2010-06-24 08:57 Dirnames

目标位置:

$ ls -l /root/temp-rw-r--r-- 1 root root    12288 May 28  2008 Conflictname-rw-r--r-- 1 bin  bin   1179648 Jun 24 05:27 Dirnames-rw-r--r-- 1 root root        0 Sep  3 06:39 Basenames

源和目标之间有两个不同之处:1. 文件Dirnames属主和属组不同 2. 文件Basenames的大小不同 使用-i选项来显示不同之处,如下所示

$ rsync -avzi linuxprobe@192.168.200.10:/var/lib/rpm/ /root/temp/Password:receiving file list ... done>f.st.... Basenames.f....og. Dirnamessent 48 bytes  received 2182544 bytes  291012.27 bytes/sectotal size is 45305958  speedup is 20.76In the output it displays some 9 letters in front of the file name or directory name indicating the changes.

可以看到,在文件名或目录名前有9个字符来代表不同之处。此例中,Basenames和Dirnames前的字符代表含义如下:

> 代表文件已被传输到本地主机。f:代表这是个文件s:代表文件大小发生变化t:代表时间戳发生变化o:属主发生变化g:属组发生变化
13. 在传输时指定包括或排除某些文件

只传输’P’开头的文件或目录(使用rsync include),不传输其他任何文件(使用rsync exclude)

$ rsync -avz --include 'P*' --exclude '*' linuxprobe@192.168.200.10:/var/lib/rpm/ /root/temp/Password:receiving file list ... done./PackagesProvidenameProvideversionPubkeyssent 129 bytes  received 10286798 bytes  2285983.78 bytes/sectotal size is 32768000  speedup is 3.19
14. 不传输大文件

使用rsync –max-size选项后,rsync将不传输大于指定大小的文件

$ rsync -avz --max-size='100K' linuxprobe@192.168.200.10:/var/lib/rpm/ /root/temp/Password:receiving file list ... done./ConflictnameGroupInstalltidNameSha1headerSigmd5Triggernamesent 252 bytes  received 123081 bytes  18974.31 bytes/sectotal size is 45305958  speedup is 367.35
15. 传输整个文件

rsync的主要特征之一是它只传输改变的块到目标位置,而不是传输整个文件。如果网络带宽对你不是问题(CPU有),您可以使用-w选项来传输整个文件。它会加速rsync过程,因为它不用在源和目标位置执行校验和。

#  rsync -avzW  linuxprobe@192.168.200.10:/var/lib/rpm/ /root/tempPassword:receiving file list ... done./BasenamesConflictnameDirnamesFilemd5sGroupInstalltidNamesent 406 bytes  received 15810211 bytes  2874657.64 bytes/sectotal size is 45305958  speedup is 2.87


关于"如何使用rsync"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

文件 同步 位置 目标 目录 传输 不同 服务器 服务 代表 时间 变化 两个 大小 篇文章 递归 安全 例子 名称 字符 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 服务器内存和普通内存如何分别 山西中诚网络技术有限公司 我是网络安全小卫士150个字 基于体系结构的软件开发模型图 旧笔记本变成云服务器 数据库技术与网络技术 湖南常规软件开发定制服务价格 普陀区媒体数据库服务行业 jeesite数据库结构 连云港大容量服务器高性价比 网络安全创客汇 网络安全为人民繁体字 数据库的主要功能 网络安全需求的应对措施 网络安全警报教程 存储服务器属于什么税收类别 江西三维人口gis系统软件开发 比较不错的数据库网课 凭据删除了还能进共享服务器 河北商城软件开发报价 湖南警察学院网络安全篮球赛 安卓 无法连接到服务器 一般的数据库安全级别 金税盘安全输入服务器地址 网络安全策略方案模板 论我国网络安全 江苏互联网络技术服务 cbm数据库官网怎么注册 超级小盘10亿网络安全股 国家网络安全手抄报4k
0