【教程主题】:rsync

【课程录制】: 创E

【主要内容】

【1】 rsync介绍

Rsync(Remote Synchronize) 是一个远程资料同步工具,可通过LAN/WAN快速同步多台主机,Rsync使用所为的“Rsync演算法”来使本地主机和远程主机之间达到同步,这个演算法并不是每次都整份传送,它只传送两台计算机之间所备份的资料不同的部分,因此速度相当快。

Rsync的优点如下:

1、可以镜像保存整个目录树和文件系统。

2、可以很容易的做到保持原来文件的许可权、时间、软链接等。

3、无须特使许可权即可安装。

4、拥有优化的流程,文件传输效率高。

5、可以使用Rsh、SSH等方式来传输文件,当然也可以直接通过Socket连接。

6、支持匿名传输。

另外,与SCP相比,传输速度不是一个层次级的。我们在局域网时经常用Rsync和SCP传输大量Mysql数据,发现Rsync至少比Scp快20倍以上,所以大家如果需要在Linux/Unix服务器之间互传海量资料,Rsync是非常好的选择。

【2】 rsync服务端方式

首先检查rsync是否安装:

rpm –q rsync

rsync-2.6.8-3.1

说明rsync已安装,如果提示出现 package rsync is not installed  则说明这个软件报没有安装大家可以使用yum进行安装

另外,关闭防火墙和SElinux,因为是内网中传输,所以这些没必要

service iptables stop && chkconfig iptables off

setenforce 0

配置文件/etc/rsyncd.conf。这个文件是自己定义的,并不是系统创建的,当然你也可以叫不同的名字,后面再写上详细注释。

uid = nobody

gid = nobody

user chroot = no

max connections = 200

timeout = 600

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsyncd.lock

log file = /var/log/rsyncd.log

[backup]

path=/backup/

ignore errors

read only = no

list = no

hosts allow = 192.168.0.0/255.255.255.0

auth users = test

secrets file = /etc/rsyncd.password

注释:

uid = nobody

进行备份的用户,nobody 为任何用户

gid = nobody

进行备份的组,nobody为任意组

use chroot = no

如果"use chroot"指定为true,那么rsync在传输文件以前首先chroot到path参数所指定的目录下。这样做的原因是实现额外的安全防护,但是缺点是需要以root权限,并且不能备份指向外部的符号连接所指向的目录文件。默认情况下chroot值为true.但是这个一般不需要,我选择no或false

list = no

不允许列清单

max connections = 200

最大连接数

timeout = 600

覆盖客户指定的IP超时时间,也就是说rsync服务器不会永远等待一个崩溃的客户端。

pidfile = /var/run/rsyncd.pid

pid文件的存放位置

lock file = /var/run/rsync.lock

锁文件的存放位置

log file = /var/log/rsyncd.log

日志文件的存放位置

[backup]

这里是认证模块名,即跟samba语法一样,是对外公布的名字

path = /backup/

这里是参与同步的目录

ignore errors

可以忽略一些无关的IO错误

read only = no

允许可读可写

list = no

不允许列清单

hosts allow = 192.168.1.0/255.255.255.0

这里跟samba的语法是一样的,只允许192.168.21.0/24的网段进行同步,拒绝其它一切

auth users = test

认证的用户名

secrets file = /etc/rsyncd.password

密码文件存放地址

注意:

1、[backup]  认证模块名和 path = /backup/ 参与同步的目录

这里的path 大家要记好了,这里不要随便的一设置就直接完事,要知道这里是认证模块的,以后从客户机备份的数据会存储在这里。

2、auth users = redhat 认证的用户名

这个名字是服务器端实实在在存在用户,大家不要直接跟步骤走却忽略了这点。如果服务器端少了这个的话我估计你的数据同步就实现不了,大家要谨记。

3、path = /backup/ 参与同步的目录

这个需要稍后自己要在根目录下自己建

cd /

mkdir backup

chmod –R 777 /backup

echo “test:test” > /etc/rsync.password

(这里我设置的是用户名和密码一致)

为了安全起见,我设置他的权限为600

chmod 600 /etc/rsync.password

启动配置

[root@test rsync-3.0.4]# vim /etc/xinetd.d/rsync

配置rsync servervi /etc/xinetd.d/rsync
将disable=yes改为no

service rsync
{
        disable = no
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/bin/rsync
        server_args     = --daemon
        log_on_failure  += USERID
}

[root@test home]# /etc/init.d/xinetd restart
Stopping xinetd:                                           [  OK  ]
Starting xinetd:                                           [  OK  ]

如果xinetd没有的话,需要安装一下
[root@test home]# yum -y install xinetd

RSYNC服务端启动的两种方法:
启动rsync服务端(独立启动)
[root@test home]# /usr/bin/rsync --daemon    on

启动rsync服务端 (有xinetd超级进程启动)
[root@test home]# /etc/init.d/xinetd reload

配置rsync自动启动
[root@test etc]# chkconfig rsync on
[root@test etc]# chkconfig rsync --list
rsync

加入rc.local
在各种操作系统中,rc文件存放位置不尽相同,可以修改使系统启动时把rsync --daemon加载进去。
[root@test home]# vi /etc/rc.local
/usr/local/rsync –daemon           #加入一行

客户端配置:

echo “test” > /etc/rsyncd.password

这里仅仅只需要密码,不需要用户了,免得要同步时还要手动互动

chmod 600 /etc/rsync.password

测试:下面delete表示删除目标存在而源目录不存在的文件的命令

rsync -vzrtop --delete /home/ce test@192.168.0.206::backup --password-file=/etc/rsyncd.password

从服务器上下载文件a:打包,v:详细信息,z压缩

rsync -avz --password-file=/etc/rsyncd.password test@192.168.0.206::backup /home/

从本地上传到服务器上去

rsync -avz --password-file=/etc/rsyncd.password /home test@192.168.0.206::backup

【3】rsync客户端方式

常用:rsync -av

下载:rsync [参数]  远程文件(远程路径)  本地目录

上传:rsync [参数]  本地文件              远程目录

rsync常用参数

如果不需要交互式的操作,rsync平时也可以像scp那样工作,下列为常用rsync参数。

例子: rsync -av test@192.168.1.122:/home/test/3.txt .

表示将服务192.168.1.122的/home/test/3.txt文件复制到本客户度的当前目录其中“.”表示当前目录

-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD

-v --verbose:详细模式输出
-r --recursive:对子目录以返回模式处理。
-p --perms:保持文件许可权
-o --owner:保持文件属主信息
-g --group:保持文件组信息
-t --times:保持文件时间信息
--delete:删除哪些DST中存在而SRC中不存在的文件或目录
--delete-excluded:同样删除接收端哪些该选项制定排出的文件
-z --compress:对备份的文件在传输时进行压缩处理
--exclude=PATTERN:制定排除不需要传输的文件
--include=PATTERN:制定不排除需要传输的文件
--exclude-from=FILE:排除FILE中制定模式的文件
--include-from=FILE:不排除FILE中制定模式匹配的文件

----------------------------------------------------------------------

说明:从理论上将这个是行的通的,因为任何服务器都可以远程连接的,那么只要知道了ip,用户名,密码,就可以进入到服务器,就可以查看服务器中的文件

这个当然就可以拷贝下来,然后另一台服务器又能登录,所以最原始的就可以将源服务器的文件拷贝到本地,然后上传到另一台服务器,rsync,相当于省掉中间一步

就是直接将源服务器的文件传到另一台服务器,当然需要配置下,有两种方式

第一种:服务器方式,需要配置一台服务器作为服务器(假装看做服务器,其实两个都是服务器),然后配置一个bakup文件,配置一个用户名和密码,专门用来被远程连接

如果说的专业点,backup就是所谓的认证模块,用户名和密码文件就是所谓的认证文件,然后客户端,也需要配置一个密钥就是源服务器对应的用户的密码,然后在传输的过程

中就设置下用户,ip参数,就相当于源服务器的用户名,密码,ip都有了,所以就可以传输了

Linux的rsync 配置,用于服务器之间远程传大量的数据的更多相关文章

  1. Linux rsync配置用于服务器之间传输大量的数据

    Linux的rsync 配置,用于服务器之间远程传大量的数据   [教程主题]:rsync [课程录制]: 创E [主要内容] [1] rsync介绍 Rsync(Remote Synchronize ...

  2. linux下rsync+inotify实现服务器之间文件实时同步

    先介绍一下rsync与inotify. 1.rsync 与传统的cp.tar备份方式相比,rsync具有安全性高.备份迅速.支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例 ...

  3. linux上安装配置samba服务器

    linux上安装配置samba服务器 在linux上安装配置samba服务器 在这给大家介绍一个不错的家伙,samba服务.如果您正在犯愁,如何在Windows和Linux之间实现资源共享,就请看看这 ...

  4. suse linux 10 下配置vpn服务器(pptp)

     一.安装所需的软件包:      pptpd-*.rpm      ppp-*.rpm      pptp-*.rpm     一般情况下系统已经将pptp和ppp包安装好了,所以只需安装pptpd ...

  5. 阿里云ECS服务器Linux环境下配置php服务器(二)--phpMyAdmin篇

    上一篇讲了PHP服务器的基本配置,我们安装了apache,php,还有MySQL,最后还跑通了一个非常简单的php页面,有兴趣的朋友可以看我的这篇博客: 阿里云ECS服务器Linux环境下配置php服 ...

  6. linux下安装配置svn服务器

    linux下安装配置svn服务器 1. svn服务器安装 将subversion-1.4.0.tar.gz和subversion-deps-1.4.0.tar.gz传到服务器. tar xfvz su ...

  7. [转载]利用memcached在多台服务器之间共享PHP的session数据

    原文地址:利用memcached在多台服务器之间共享PHP的session数据作者:a1049709658 最近我的几篇文章都是是最近项目的一点心得^^ 这个项目一开始就设计的"很大&quo ...

  8. rsync+inotify实现服务器之间文件实时同步--转

    之前做了“ssh信任与scp自动传输脚本”的技术文档,此方案是作为公司里备份的方法,但在实际的运行中,由于主服务器在给备份服务器传输的时候,我们的主服务器需要备份的文件是实时.不停的产生的,造成不知道 ...

  9. linux系统中rsync+inotify实现服务器之间文件实时同步

    最近需要对服务器上的文件实施动态备份,我又不想每次都手动来进行备份,在网上找了挺多资料,发现使用rsync就可以实现,如果想要实现实时同步,还可以使用rsync+inotify组合,本文就是以组合方式 ...

随机推荐

  1. 作为一个懒虫,如何优雅的使用windows

    懒虫windows系列(一) 首先是快捷键,因为自己太懒了,觉得用鼠标很麻烦,下面总结一下自己最常用的快捷键(windows10 ) Ctrl+Shift+N:新建文件夹 F2:重命名 Ctrl + ...

  2. A Proof of Stake Design Philosophy - PoS权益证明设计理念

    之前在EthFans上看到了关于PoS(权益证明)的相关文章(原文链接),本着学习的态度,对这篇文章进行了翻译.第一次翻译关于区块链的文章,有些单词及句子的措辞还不是很准确,如果发现有翻译的不恰当的地 ...

  3. 从循环添加事件谈起对JS闭包的理解

    1.引子 相信很多初学js的人,都遇到这样一种情况:想要给一堆按钮添加各自的事件,比如点击第i个按钮时,弹出i这个值.理所当然地,我们会这样写: var buttons = document.getE ...

  4. ios开发数据库版本迁移手动更新迭代和自动更新迭代艺术(二)

    由于大家都热衷于对ios开发数据库版本迁移手动更新迭代和自动更新迭代艺术(一)的浏览下面我分享下我的源文件git仓库: 用法(这边我是对缓存的一些操作不需要可以省去):https://github.c ...

  5. 微信小程序基于腾讯云对象存储的图片上传

    在使用腾讯云对象存储之前,公司一直使用的是传统的FTP的上传模式,而随着用户量的不断增加,FTP所暴露出来的问题也越来越多,1.传输效率低,上传速度慢.2.时常有上传其他文件来攻击服务器,安全上得不到 ...

  6. fail2ban防止SSH暴力破解

    [root@kazihuo /srv]# wget https://github.com/fail2ban/fail2ban/archive/0.8.14.tar.gz [root@kazihuo / ...

  7. react-router简明学习

    前面的话 路由用来分发请求.后端是提供服务的,所以它的路由是在找controller,前端是显示页面的,所以它的路由是在找component.本文将详细介绍react-router-dom的内容 Ro ...

  8. 笔记:Maven 生成项目站点

    Maven 不仅仅时一个自动化构建工具和一个依赖管理工具,他还能够帮助聚合项目信息,促进团队间的交流,POM 可以包含各种项目信息,如项目描述.版本控制系统地址.缺陷跟踪系统地址.许可证信息.开发者信 ...

  9. 前端touch事件方向的判断

    移动端touch事件判断滑屏手势的方向 方法一 当开始一个touchstart事件的时候,获取此刻手指的横坐标startX和纵坐标startY: 当触发touchmove事件时,在获取此时手指的横坐标 ...

  10. Java 容器 接口

    Java 中容器框架的内容可以分为三层: 接口(模型), 模板和具体实现. 在开发中使用容器正常的流程是,首先根据需求确定使用何种容器模型,然后选择一个符合性能要求的容器实现类或者自己实现一个容器类. ...