rsync基本用法

1案例1:rsync基本用法

1.1问题

本例要求掌握远程同步的基本操作,使用rsync命令完成下列任务:

将目录/boot同步到目录/todir下

将目录/boot下的文档同步到目录/todir下

在目录/boot下新增文件a.txt,删除/todir下的子目录grub2,再次同步使/todir与/boot一致

验证-a、-n、-v、--delete选项的含义

1.2方案

本地同步操作:

rsync[选项...]本地目录1本地目录2

rsync[选项...]本地目录1/本地目录2

rsync同步工具的常用选项:

-n:测试同步过程,不做实际修改

--delete:删除目标文件夹内多余的文档

-a:归档模式,相当于-rlptgoD

-v:显示详细操作信息

-z:传输过程中启用压缩/解压

1.3步骤

实现此案例需要按照如下步骤进行。

步骤一:rsync同步基本操作

1)将目录/boot同步到目录/todir下

[root@svr7~]#ls -l /todir //同步前

ls:无法访问/todir:没有那个文件或目录

[root@svr7~]#rsync -a /boot /todir  //将目录1作为目录2的子目录

[root@svr7~]#ls -l /todir   //检查同步结果

总用量4

dr-xr-xr-x.4 root root 4096 11月30 18:50 boot

2)将目录/boot下的文档同步到目录/todir下

[root@svr7~]#rm -rf /todir //清理掉目录2

[root@svr7~]#rsync -a /boot/ /todir  //将目录1下的文档同步到目录2下

[root@svr7~]#ls -l /todir //检查同步结果

总用量126708

-rw-r--r--.1 root root 126426 10月30 2015 config-3.10.0-327.el7.x86_64

drwxr-xr-x.2 root root 4096 11月30 18:50 extlinux

drwx------.6 root root 104 12月9 09:58 grub2

....

3)同步效果测试

① 在目录/boot下新增文件a.txt,删除/todir下的子目录grub2:

[root@svr7~]#touch /boot/a.txt

[root@svr7~]#rm -rf /todir/grub2/

② 现在目录/boot和/todir目录下的内容已经不一致了:

[root@svr7~]#ls -ld /boot/a.txt /todir/a.txt

ls:无法访问/todir/a.txt:没有那个文件或目录

-rw-r--r--.1 root root 0 1月11 21:09/boot/a.txt

[root@svr7~]#ls -ld /boot/grub2 /todir/grub2

ls:无法访问/todir/grub2:没有那个文件或目录

drwx------.6 root root 104 12月9 09:58/boot/grub2

③ 再次同步使/todir与/boot一致

[root@svr7~]#rsync -a  /boot/ /todir/

确认同步结果:

[root@svr7~]#ls -ld /boot/a.txt/ todir/a.txt

-rw-r--r--.1 root root 0 1月11 21:09/boot/a.txt

-rw-r--r--.1 root root 0 1月11 21:09/todir/a.txt

[root@svr7~]#ls-ld/boot/grub2/todir/grub2

drwx------.6 root root 104 12月9 09:58/boot/grub2

drwx------.6 root root 104 12月9 09:58/todir/grub2


步骤二:验证-a、-v、-n、--delete选项的含义

1)验证-a选项

④ 当目录1包含文件夹时,若缺少-a或-r选项则文件夹会被忽略:

[root@svr7~]#rsync /home /testa

skipping directory home

[root@svr7~]#ls -ld /testa

⑤ ls:无法访问/testa:没有那个文件或目录

添加-a后才会执行同步:

[root@svr7~]#rsync -a /home/ /testa

[root@svr7~]#ls -ld /testa

drwxr-xr-x.4 root root 31 1月6 17:33/testa

类似的情况,当目录1中的数据出现权限、归属、修改时间等变化时,若文件内容不变默认不会同步,若希望目录2也同步这些变化,也需要-a选项。

2)验证-v选项

a. 创建测试目录及文档:

[root@svr7~]#mkdir /fdir

[root@svr7~]#touch /fdir/1.txt

b.添加-v选项时,可以看到操作细节信息,比如第一次同步时:

[root@svr7~]#rsync -av /fdir/ /tdir

sending incremental file list

created directory/tdir

./

c. 1.txt//传输文档列表

sent 82 bytes received 34 bytes 232.00 bytes/sec

total size is 0 speedup is 0.00

d. 在目录/fdir/添加文件2.txt,再次跟踪同步信息:

[root@svr7~]#touch /fdir/2.txt

sending incremental file list

./

2.txt//传输文档列表

sent 100 bytes received 34 bytes 268.00 bytes/sec

total size is 0 speedup is 0.00

e. 确认目录1和目录2的内容已经一致

[root@svr7~]#ls /fdir/ /tdir/

/fdir/:

1.txt 2.txt

/tdir/:

1.txt 2.txt

f. 再次跟踪同步信息,已经无需传输文件:

[root@svr7~]#rsync -av /fdir/ /tdir

sending incremental file list

sent 58 bytes received 12 bytes 140.00 bytes/sec

total size is 0 speedup is 0.00

3)验证-n选项

① 将-n、-v选项合用,可以模拟同步过程,显示需要做哪些操作(但并不真的同步)。     在目录/fdir下新建文件3.txt,测试同步操作

[root@svr7~]#touch /fdir/3.txt

[root@svr7~]#rsync -avn /fdir/ /tdir/

sending incremental file list

./

② 3.txt//提示同步时会传输哪些文件

sent 78 bytes received 18 bytes 192.00 bytes/sec

total size is 0 speedup is 0.00(DRY RUN)

[root@svr7~]#ls -l /tdir/3.txt//但实际并未真的同步

③ ls:无法访问/tdir/3.txt:没有那个文件或目录

去掉-n选项才会真正同步:

[root@svr7~]#rsync -av /fdir/ /tdir/

sending incremental file list

./

3.txt

sent 114 bytes received 34 bytes 296.00 bytes/sec

total size is 0 speedup is 0.00

[root@svr7~]#ls -l /tdir/3.txt

-rw-r--r--.1 root root 0 1月11 21:46/tdir/3.txt

4)验证--delete选项

rsync同步操作默认只是将目录1的数据同步到目录2,但如果目录2存在多余的文件却并不会去除,除非添加—delete选项。

在目录/fdir、/tdir已经完成同步后,删除/tdir/2.txt文件,再次同步:

[root@svr7~]#rm -rf /fdir/2.txt

[root@svr7~]#rsync -a /fdir/ /tdir/

A.检查发现目标文件夹/tdir下的2.txt文件还在:

[root@svr7~]#ls /fdir//tdir/

/fdir/:

1.txt 3.txt

/tdir/:

1.txt 2.txt 3.txt

B. 这种情况下添加--delete选项再次执行同步,两个目录的内容就一致了

[root@svr7~]#rsync -a --delete /fdir/ /tdir/

[root@svr7~]#ls /fdir/ /tdir/

/fdir/:

1.txt 3.txt

/tdir/:

1.txt 3.txt

rsync同步基本用法的更多相关文章

  1. rsync 精确同步文件用法 (转载)

    -- include-from 指定目录下的部分目录的方法: include.txt: aa bb ss Command: rsync -aSz  --include-from=/home/inclu ...

  2. SCP 和 rsync限速以及用法

    rsync限速以及用法 -- :: 标签:限速 rsync 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://xficc.blog. ...

  3. Linux rsync 同步

    rsync 是一个快速增量文件传输工具,它可以用于在同一主机备份内部的备分,我们还可以把它作为不同主机网络备份工具之用.本文主要讲述的是如何自架rsync服务器,以实现文件传输.备份和镜像.相对tar ...

  4. Rsync同步部署web服务端配置

    Rsync同步部署web服务端配置 1,参数详解: -v, --verbose 详细模式输出. -q, --quiet 精简输出模式. -c, --checksum 打开校验开关,强制对文件传输进行校 ...

  5. shell脚本 inotify + rsync 同步脚本

    1.这是很简单的一个 文件监控+触发同步脚本 监控一台服务器下的一个文件夹,发生改变则向另一个个文件夹进行同步. 具体的inotify命令  rsync命令  可以看linux分类下的介绍 inoti ...

  6. 使用rsync同步目录

    本文描述了linux下使用rsync单向同步两个机器目录的问题. 使用rsync同步后可以保持目录的一致性(含删除操作). 数据同步方式 从主机拉数据 备机上启动的流程 同步命令: rsync -av ...

  7. Windows Linux 之间rsync同步CODE文件

    Windows Linux 之间rsync同步CODE文件 一.环境Windows:OS:Microsoft Windows Web Server 2008 SP1IP:192.168.88.197 ...

  8. rsync同步Nginx日志遇到问题总结

    一.目的 将nginx 日志通过普通用户利用rsync公钥认证的方式实时同步到本地服务器上,之后使用elk程序进行处理. 二.遇到问题及解决方法思路 问题1.文件权限:nginx 的日志默认权限如下: ...

  9. 运维工作中常用到的几个rsync同步命令

    作为一个运维工程师,经常可能会面对几十台.几百台甚至上千台服务器,除了批量操作外,环境同步.数据同步也是必不可少的技能.说到“同步”,不得不提的利器就是rsync. 下面结合本人近几年运维工作中对这一 ...

随机推荐

  1. JavaScript如何工作:垃圾回收机制 + 常见的4种内存泄漏

    原文地址: How JavaScript works: memory management + how to handle 4 common memory leaks 本文永久链接:https://d ...

  2. MyBatisCodeHelper-Pro插件破解

    MyBatisCodeHelper-Pro: MyBatisCodeHelper-Pro是IDEA下的一个插件,功能类似mybatis plugin. 但是是收费的,我们可以对他进行破解 转载出处:h ...

  3. git jenkins 基本部署之git远程仓库

    1.git远程仓库如何使用? 实战一.如何将本地仓库与远程Gitee进行关联?        1.注册gitee        2.创建一个远程仓库?        3.配置使用远程仓库       ...

  4. maven的相关操作及常见问题

    mvn本地服务nexus3的搭建 下载 下载nexus 官网速度极慢,下面是我下好上传的大家可以下载使用链接:https://pan.baidu.com/s/1Ji5Orv3moXc60HRQ39y6 ...

  5. 轻量级CNN模型mobilenet v1

    mobilenet v1 论文解读 论文地址:https://arxiv.org/abs/1704.04861 核心思想就是通过depthwise conv替代普通conv. 有关depthwise ...

  6. 优化 .net core 应用的 dockerfile

    优化 .net core 应用的 dockerfile Intro 在给 .net core 应用的写 dockerfile 的时候一直有个苦恼,就是如果有很多个项目,在 dockerfile 里写起 ...

  7. call方法和apply方法

    1.call 语法 call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 参数 thisObj  可选项.将被用作当前对象的对象. arg1,arg2, , argN  ...

  8. Spring MVC(3)Spring MVC 高级应用

    一.Spring MVC 的数据转换和格式化 前面的应用,都只是用HandlerAdapter去执行处理器. 处理器和控制器不是一个概念,处理器是在控制器功能的基础上加上了一层包装,有了这层包装,在H ...

  9. Mysql数据库(二)Mysql数据库管理

    一 .创建数据库 1.通过CREATE DATABASE db_library;创建名称为db_library的数据库. 2.通过CREATE SCHEMA db_library1;创建名称为db_l ...

  10. 死磕 java线程系列之线程池深入解析——普通任务执行流程

    (手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本. 注:线程池源码部分如无特殊说明均指ThreadPoolExecutor类. 简介 前面我们一起学习了Java中 ...