这篇文章将为大家详细讲解有关如何使用rsync,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。rsync是可以实现增量备份的工具。配合任务计划,rsync能实现定时或间隔同步,配合inotify或sersy
这篇文章将为大家详细讲解有关如何使用rsync,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
rsync是可以实现增量备份的工具。配合任务计划,rsync能实现定时或间隔同步,配合inotify或sersync,可以实现触发式的实时同步。
$ rsync options source destination
source和destination可以是本地或远程。在远程的情况下,需要指定登录名、远程服务器的名称和位置。
用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
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
指定文件名称,只同步一个文件
$ 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
当同步到远程服务器时,我们需要指定用户名、远程服务器的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
$ 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
远程同步时,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
如果目标位置的文件已被修改,而我们不希望旧文件覆盖它时,可以使用-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
使用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
使用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
若我们希望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
使用-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
源位置:
$ 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:属组发生变化
只传输’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
使用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
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”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
--结束END--
本文标题: 如何使用rsync
本文链接: https://lsjlt.com/news/310613.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0