首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
函数参数与返回值
传递变长参数
defer 和追踪
内置函数
递归函数
将函数作为参数
闭包
应用闭包:将函数作为返回值
使用闭包调试
计算函数执行时间
通过内存缓存来提升性能
声明和初始化
切片
For-range 结构
切片重组(reslice)
切片的复制与追加
字符串、数组和切片的应用
声明、初始化和 make
测试键值对是否存在及删除元素
for-range 的配套用法
map 类型的切片
map 的排序
将 map 的键值对调
标准库概述
regexp 包
锁和 sync 包
精密计算和 big 包
自定义包和可见性
为自定义包使用 godoc
使用 go install 安装自定义包
自定义包的目录结构、go install 和 go test
通过 Git 打包和安装
Go 的外部包和项目
在 Go 程序中使用外部库
结构体定义
使用工厂方法创建结构体实例
使用自定义包中的结构体
带标签的结构体
匿名字段和内嵌结构体
方法
类型的 String() 方法和格式化描述符
垃圾回收和 SetFinalizer
当前位置:
首页>>
技术小册>>
go编程权威指南(二)
小册名称:go编程权威指南(二)
**命令介绍** rsync命令来自于英文词组“remote sync”的缩写,其功能是用于远程数据同步。rsync命令能够基于网络(含局域网和互联网)快速的实现多台主机间的文件同步工作,并与scp或ftp发送完整文件不同,rsync有独立的文件内容差异算法,会在传送前对两个文件进行比较,只传送两者内容间的差异部分,因此速度更快。 ------------ 常用参数: -v 详细模式输出 -z 压缩文件 -o 保留文件原始所有者身份 -g 保留文件原始所有组身份 -p 保留文件原始权限信息 -b 备份目标文件 -r 递归目录文件(传输目录内的子文件) -d 不递归目录文件(不传输目录内的子文件) -P 显示进度信息 -q 精简输出模式 -h 显示帮助信息 ------------ 将虚拟机index.html远程同步到服务器: ```bash rsync -r index.html root@magento360.cn:/root/rsyncTest root@magento360.cn's password: Permission denied, please try again. root@magento360.cn's password: ``` 将虚拟机目录shellScript同步到服务器 ```bash u1@localhost:~/Documents$ rsync -avzP shellScript root@magento360.cn:/root root@magento360.cn's password: sending incremental file list shellScript/ shellScript/index.php 20 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=1/3) shellScript/test.sh 171 100% 166.99kB/s 0:00:00 (xfr#2, to-chk=0/3) sent 339 bytes received 58 bytes 34.52 bytes/sec total size is 191 speedup is 0.48 ``` **rsync+inotify** rsync与传统的cp、tar备份方式相比,rsync具有安全性高、备份迅速、支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期的备份文件服务器数据到远端服务器,对本地磁盘定期做数据镜像等。 随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐渐暴露出了很多不足,首先,rsync同步数据时,需要扫描所有文件后进行比对,进行差量传输。如果文件数量达到了百万甚至千万量级,扫描所有文件将是非常耗时的。而且正在发生变化的往往是其中很少的一部分,这是非常低效的方式。其次,rsync不能实时的去监测、同步数据,虽然它可以通过linux守护进程的方式进行触发同步,但是两次触发动作一定会有时间差,这样就导致了服务端和客户端数据可能出现不一致,无法在应用故障时完全的恢复数据。基于以上原因,rsync+inotify组合出现了! Inotify是一种强大的、细粒度的、异步的文件系统事件监控机制,linux内核从2.6.13起,加入了Inotify支持,通过Inotify可以监控文件系统中添加、删除,修改、移动等各种细微事件,利用这个内核接口,第三方软件就可以监控文件系统下文件的各种变化情况,而inotify-tools就是这样的一个第三方软件。 rsync可以实现触发式的文件同步,但是通过crontab守护进程方式进行触发,同步的数据和实际数据会有差异,而inotify可以监控文件系统的各种变化,当文件有任何变动时,就触发rsync同步,这样刚好解决了同步数据的实时性问题 **小结:** rsync命令可以用于远程数据同步服务 实际应用场景中,可以在服务器搭建rsync服务,保证多个服务器的指定目录内容保持同步 rsync+inotify服务的配合,可以监控文件系统文化,当文件有任何变动,自动触发rsync同步,保证了数据同步的实时性。
上一篇:
scp命令 – 文件上传下载
下一篇:
top命令 – 系统运行状态
该分类下的相关小册推荐:
深入浅出Go语言核心编程(二)
WebRTC音视频开发实战
深入浅出Go语言核心编程(五)
Go Web编程(上)
Go-Web编程实战
Go开发权威指南(下)
深入浅出Go语言核心编程(三)
GO面试指南
Go Web编程(中)
深入浅出Go语言核心编程(六)
Go Web编程(下)
Go开发权威指南(上)