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. vue-cli3 关闭一直运行的 /sockjs-node/info?t= ...

    首先 sockjs-node 是一个JavaScript库,提供跨浏览器JavaScript的API,创建了一个低延迟.全双工的浏览器和web服务器之间通信通道. 本地项目运行就会自动去访问:http ...

  2. robotframework+ride+python3环境搭建

    一.windows下安装python3.6 1.官网下载安装包https://www.python.org/downloads/windows/ 2.进行安装,接下来步骤一直next即可 二.cmd下 ...

  3. OSI七层模型和五层TCP/IP协议

    1.查公网ip的方法: windows,打开浏览器,访问百度,搜IP即可 linux:curl ifconfig.me 2.OSI七层模型 ==网络工程师:== 物理层 1层,通信介质的信号到数字信号 ...

  4. 百万年薪python之路 -- f-strings 格式化

    f-strings 是python3.6开始加入标准库的格式化输出新的写法,这个格式化输出比之前的%s 或者 format 效率高并且更加简化,非常的好用. 2.1 简单举例 他的结构就是F(f)+ ...

  5. solr学习篇(二) solr 分词器篇

    关于solr7.4搭建与配置可以参考 solr7.4 安装配置篇  在这里我们探讨一下分词的配置 目录 关于分词 配置分词 验证成功 1.关于分词 1.分词是指将一个中文词语拆成若干个词,提供搜索引擎 ...

  6. volatile关键字使用

    1.volatile 使用场景(多线程情况下): 适合使用在 一写多读 的情况下: 2.volatile 理解分析: 使用 volatile 关键字修饰的变量,值在改变时会直接刷新到 主内存 中,而不 ...

  7. PHP的陷阱

    PHP的陷阱 写代码的时候有个疑惑,那就是数组下标不存在的时候就会挂掉Undefined Index XXXX,这是对的,但是有时候他就不报错,这又是矛盾的. 请看下面的例子: $json_raw = ...

  8. Java基础(三十六)日期和时间

    1.Date类 (1)无参数构造方法创建的对象可以获取本机当前时间 (2)有参数构造方法创建的对象表示举例计算机系统自身时间的距离为给定的参数 Date date = new Date(); // 当 ...

  9. 在.NET Core 3.0中发布单个EXE文件

    假设我有一个简单的“ Hello World”控制台应用程序,我想发送给朋友来运行.朋友没有安装.NET Core,所以我知道我需要为他构建一个独立的应用程序.很简单,我只需在项目目录中运行以下命令: ...

  10. Android H5混合开发(1):构建Cordova 项目

    Cordova是什么 Apache Cordova是一个开源的移动开发框架.允许你用标准的web技术-HTML5,CSS3和JavaScript做跨平台开发. 以移动平台为例,安卓.IOS平台设备的常 ...