带你走进rsync的世界

导读 Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件,也可以使用 Rsync 同步本地硬盘中的不同目录。rsync共有3种使用方法,在配置rsync也是有6个步骤的。下面我们就从rsync的介绍,rsync的使用和rsync的配置带你走进rsync的世界

一.rsync简介

Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件,也可以使用 Rsync 同步本地硬盘中的不同目录。 在使用 rsync 进行远程同步时,可以使用两种方式:远程 Shell 方式(建议使用 ssh,用户验证由 ssh 负责)和 C/S 方式(即客户连接远程 rsync 服务器,用户验证由 rsync 服务器负责)。rsync 被称为是一个文件同步的快速方法,主要是因为其在同步文件时会检查文件之间是否有差异,它只同步存在差异或者不存在的文件,但是首次同步时速度依然很慢。

rsync有许多选项:
    -n: 在不确定命令是否能按意愿执行时,务必要事先测试;-n可以完成此功能;
    -v: --verbose,详细输出模式
    -q: --quiet,静默模式
    -c: --checksum,开启校验功能,强制对文件传输进行校验
    -r: --recursive,递归复制;
    -a: --archives,归档,保留文件的原有属性
    -p: --perms 保留文件的权限
    -t: --times 保留文件的时间戳
    -l: --links 保留文件的符号链接
    -g: --group 保留文件的属组
    -o: --owner 保留文件的属主
    -D: --devices 保留设备文件
    -H, --hard-links 保留硬链结;
    -S, --sparse 对稀疏文件进行特殊处理以节省DST的 空间;
    -e ssh: 表示使用ssh协议作承载
    -z: 对文件压缩后传输
    --progress:显示进度条
    --stats: 显示如何执行压缩和传输
    --delete:删除那些DST中有而SRC没有的文件,即删除DST中多余的文件;

二,rsync使用方法

rsync可以在此处下载   http://rsync.samba.org/  ,CentOS系统上rsync默认是安装的。

rsync有六种不同的工作模式:

1. 拷贝本地文件

当SRC和DES路径信息都不包含有单个冒号”:”分隔符时就启动这种工作模式。

[[email protected] ~]# rsync -avSH /home/feiyu/ /bak/

2.将本地机器的内容拷贝到远程机器

使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号”:”分隔符时启动该模式。

[[email protected] ~]# rsync -av /home/feiyu/ 192.168.0.24:/home/feiyu/

3.将远程机器的内容拷贝到本地机器

使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号”:”分隔符时启动该模式。

[[email protected] ~]# rsync -av 192.168.0.24:/home/feiyu/  /home/feiyu/

注意:rsync命令使用中,如果源参数的末尾有斜线,就会复制指定目录的内容,而不复制目录本身;没有斜线,则会复制目录本身;目标参数末尾的斜线没有作用;因此下面的命令

[[email protected] ~]# rsync -r /mydata/data /backups/ : 会把目录data直接同步至/backups目录中

[[email protected] ~]# rsync -r /mydata/data/ /backups/: 会把目录data/中的内容的同步至/backups目录中

后面三种模式都是在rsync作为服务器时才能使用的,下面就开始配置rsync作为一个服务。

三,配置rsync服务

配置一个简单的rsync服务并不复杂,但是我们安装好rsync后,并没有发现配置文件,所以你需要手动建立一些配置文件。rsync可以经由xinetd启动daemon,或者作为一个独立进程启动daemon。如果把它作为一个独立进程来启动,只需要运行命令:rsync –daemon即可;但是我们一般将其作为超级守护进程使用。下面是安装步骤:

1.安装并启动xinetd

[[email protected] ~]# yum -y install xinetd 

[[email protected] ~]# ls  /etc/xinetd.d/    #rsync的xinetd配置文件已经存在
chargen-dgram   daytime-dgram   discard-dgram   echo-dgram   rsync          time-dgram
chargen-stream  daytime-stream  discard-stream  echo-stream  tcpmux-server  time-stream

2. 为rsync服务提供配置文件

配置文件为/etc/rsyncd.conf,获取帮助的方式:man rsyncd.conf。配置文件需要定义一个全局配置和多个rsync共享配置。

[[email protected] ~]# cat  /etc/rsyncd.conf
# Global Settings
# port = 873   端口号默认为873,可以不指定
uid = nobody  //指定当模块传输文件的守护进程UID
gid = nobody  //指定当模块传输文件的守护进程GID
use chroot = no  //使用chroot到文件系统中的目录中
max connections = 5   //最大并发连接数
strict modes = yes      #严格检查文件权限
pid file = /var/run/rsyncd.pid  //指定PID文件
lock file = /usr/local/rsyncd/rsyncd.lock  //指定支持max connection的锁文件,默认为/var/run/rsyncd.lock
log file = /var/log/rsyncd.log  //rsync 服务器的日志

# Directory to be synced
[mydata]          //自定义模块
path = /mydata/data    //用来指定要备份的目录
ignore errors = yes    //可以忽略一些IO错误
read only = no  //设置no,客户端可以上传文件,yes是只读
write only = no  //no为客户端可以下载,yes 不能下载
hosts allow = 192.168.0.0/16  //可以连接的IP
hosts deny = *   //禁止连接的IP
list = false       //客户请求时,使用模块列表
uid = root
gid = root
auth users = myuser   //连接用户名,和linux系统用户名无关系
secrets file = /etc/rsyncd.passwd	//验证密码文件

说明(deny | allow 规则):
1、二者都不出现时,默认为允许访问;
2、只出现hosts allow: 定义白名单;但没有被匹配到的主机由默认规则处理,即为允许;
3、只出现hosts deny: 定义黑名单;出现在名单中的都被拒绝;
4、二者同时出现:先检查hosts allow,如果匹配就allow,否则,检查hosts deny,如果匹配则拒绝;如二者均无匹配,则由默认规则处理,即为允许;

3.创建密码文件

文件格式(明文): username : password

[[email protected] ~]# echo "myuser:mypass" >  /etc/rsyncd.passwd 

[[email protected] ~]# chmod 600 /etc/rsyncd.passwd     #权限必须为600

4.启动服务

[[email protected] ~]# service xinetd  start

5.使用方法 ( 后三种模式 )

a. 从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含”::”分隔符时启动该模式。

[[email protected] ~]# rsync -av [email protected]::mydata /tmp/     #myuser为rsync服务器的一个用户

b. 从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含”::”分隔符时启动该模式。

[[email protected] ~]# rsync -av install.log.syslog  [email protected]::mydata

c. 列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。

[[email protected] ~]# rsync -av [email protected]::mydata

原文来自:http://www.linuxprobe.com/use-rsync-file.html

免费提供最新Linux技术教程书籍,为开源技术爱好者努力做得更多更好:http://www.linuxprobe.com/

时间: 2024-12-21 02:33:31

带你走进rsync的世界的相关文章

【密码学】一万字带您走进密码学的世界(下)

引文 密码学是研究编制密码和破译密码的技术科学.研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学:应用于破译密码以获取通信情报的,称为破译学,总称密码学. 在<一万字带您走进密码学的世界(上)>的文章中我们探讨了对称密码体系,哈希函数等技术,本文继续探讨密码学剩余的部分,本文的主要内容包括,非对称密码体系,签名算法等,因为本部分是区块链技术的基石,所以我会讲的更加详细一点,虽然我已经尽最大努力使思想简化,但是其中的数学理论对于很多人还是很晦涩,建议读者开始之前先读下数论的有关

详解C++引用——带你走进引用的世界

 一.介绍引用 首先说引用是什么,大家可以记住,引用就是一个别名,比如小王有个外号叫小狗,他的妈妈喊小狗回家吃饭,那就是在喊小王回家吃饭. 接下来我们用两行代码来声明一个引用(就拿小王和小狗来说吧): int xiaoW; int &xiaoG=xiaoW; 上面就是一个引用,说明几点要注意的地方: 1.&不是取地址符,而是引用运算符: 2.xiaoG是xiaoW的别名,所以这两个变量的值和地址都是一样的: 3.引用只能初始化,而不能先声明再赋值,因为引用就相当于一个常量: 4.在声明

【密码学】一万字带您走进密码学的世界(上)

引文 密码学是研究编制密码和破译密码的技术科学.研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学:应用于破译密码以获取通信情报的,称为破译学,总称密码学. 为了使读者对密码学有一个整体的认识,本文简述了常见的密码学的概念,其中本文包括对称密码,哈希函数.<一万字带您走进密码学的世界(下)>包括非对称密码,数字签名,数字认证等,需要指出的是文中并没有深入探讨加密算法原理,关于此部分内容,后续的文章会详细阐述.本文的主要内容如下图所示: 对称密码 在对称密码体系中,相同的密码用来

小丁带你走进git的世界三-撤销修改(转)

一.撤销指令 git checkout还原工作区的功能 git reset  还原暂存区的功能 git clean  还没有被添加进暂存区的文件也就是git还没有跟踪的文件可以使用这个命令清除他们 git revert 撤销本次提交. 二.指令讲解 Git checkout 首先我们对文件的一个修改,对master.txt进行了修改 修改结果我们利用上面的知识来进行查看. 新增加了Test这么一段话,如果我们想要将工作区的内容添加到暂存区会使用git  add这个命令,如果我们想要还原工作区内容

一个"收纳箱"带你走进数据库的世界

一个"收纳箱"带你走进数据库的世界 一.前言 1.1时势造英雄--数据时代,未来已来 ? 如今,我们已然"从IT时代迈入DT时代",马云也说过:未来的资源不是石油,不是天然气,而是"数据".这是因为,在信息技术迭代如此之快的时代,会产生各种各样的大量数据.信息,那么伴随而来的问题就是:我们应该如何实现安全.有效地存储.检索以及管理数据? ? 数据时代,对数据的有效存储.高效访问.方便共享和安全控制已经成为目前亟待解决的问题. 1.2问题引出--如

带你走进spring的世界

spring有两大特性,其一为ioc,其二为aop 1.ioc的理解 ioc为依赖注入,他的好处就是把创建对象的权利交给spring去管理,这样的好处是 将应用程序中的对象解耦,传统的方式程序中的对象与对象引用的对象相互依赖,这样就使得依赖性增高,增加耦合性. di为控制反转,以前创建对象的权利由应用程序,现在交给spring来管理 从应用层到ioc这就为控制反转. ioc提供了两种容器: 1)bean工厂(BeanFactory),采用工厂模式,负责创建和分发bean对象,bean工厂还参与到

Linux新手入门怎么学?这些知识带你走进云的世界

云计算的大名,不说是妇孺皆知,但知道跟互联网行业沾点儿亲带点儿故的,怎么着也得算是家喻户晓了.当然来说,云计算毕竟是一个术语,是一个专业名词,很多朋友听说是听说过,也知道它现在的火热,更是知道搞云计算的一个个都又有闲又有钱的样子,但就是不知道云计算是个什么东西-- 什么是云计算?就像用电不需要家家装备发电机,只需直接从电力公司购买一样."云计算"带来的就是这样一种变革.由谷歌.IBM这样的专业网络公司来搭建计算机存储.运算中心,用户依靠一根网线借助浏览器就可以很方便的访问,把"

带你走进汇编的世界

本文所做的实验是用汇编实现字符串逆向排序的功能. 其实就相当于C语言中的reverse( ) 函数. 简要叙述: 将字符串 ''abcdefghij" 放到指定的内存位置,同时分配一段内存作为栈 然后将字符串入栈再出栈,以此实现字符串逆向排序功能 一下就是代码: 编译: 连接: 调试: 初始化阶段: 观察右边内存中的数据, 入栈结束: 字符串“abcdefghij” 已经存进内存中 出栈结束: 字符串逆向排序完成. 实现原理: 首先在内存中定义数据段和栈: 将字符串内容放到内存中数据段和栈中:

小丁带你走进git的世界三-撤销修改

一.撤销指令 git checkout还原工作区的功能 git reset  还原暂存区的功能 git clean  还没有被添加进暂存区的文件也就是git还没有跟踪的文件可以使用这个命令清除他们 git revert 撤销本次提交. 二.指令讲解 Git checkout 首先我们对文件的一个修改,对master.txt进行了修改 修改结果我们利用上面的知识来进行查看. 新增加了Test这么一段话,如果我们想要将工作区的内容添加到暂存区会使用git  add这个命令,如果我们想要还原工作区内容