linux集群搭建之rsync服务的搭建

rsync 服务总结
目录
rsync 服务总结 1
第1章 rsync简介 3
1.1 什么是rsync 3
1.2 rsync的特性 3
1.3 rsync常用选项 3
1.4 rsync的三种工作模式 4
1.4.1 本地模式 4
1.4.2 ssh通道模式(shell模式) 4
1.4.3 daemon模式 5
第2章 rsync daemon模式的配置 6
2.1 服务端的配置 6
2.1.1 查看安装环境 6
2.1.2 查看是否有rsync安装包 6
2.1.3 添加rsync用户,用来管理本地目录 6
2.1.4 生成配置文件/etc/rsyncd.conf(该文件默认是不存在的) 6
2.1.5 启动并检查是否启动成功 8
2.1.6 建立共享目录并赋予权限 8
2.1.7 创建密码文件并编辑 8
2.1.8 更改密码文件的权限并检查 8
2.1.9 查看rsync服务的端口 8
2.1.10 将rsync服务加入开机自启动 9
2.2 客户端配置步骤 9
2.2.1 建立密码文件,只需在文件中写入密码即可 9
2.2.2 给密码文件设置权限 9
2.2.3 建立打包目录 9
2.3 测试 9
2.3.1 在客户端建立测试文件 9
2.3.2 测试命令 9
2.4 rsync多模块的配置 10
2.4.1 编辑配置文件/etc/rsyncd.conf 10
2.4.2 创建目录并赋予权限 11
2.4.3 重启rsync服务 11
2.4.4 在客户端进行测试 11
2.5 rsync多用户的配置 11
2.5.1 编辑配置文件/etc/rsyncd.conf 11
2.5.2 创建密码文件/etc/rsync.password.oldboy 12
2.5.3 在客户端进行测试 12
第3章 服务模式排除及无差异同步 12
3.1 服务模式排除 12
3.2 无差异同步 13
第4章 企业案列 13
4.1 案例1 13
4.2 案例2 13
第5章节 错误重现 13
5.1 服务端错误 13
5.1.1 rsync服务端缺少共享目录 13
5.1.2 rsync服务端共享目录权限不够 14
5.1.3 服务端缺少用户 15
5.1.4 客户端在推送时模块多一个斜线 16
5.2 客户端错误 16
5.2.1 客户端密码文件不对 16

第1章 rsync简介
1.1 什么是rsync
? rysnc是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具。rsync软件适用于unix/linux等多种操作平台
? 一个rsync命令相当于scp(远程备份,但是rsync可以实现增量备份)、cp、rm三个命令
? centos5系列和centos6系列的差别在于5系列是先进性对比,然后在进行同步,6系列是一边对比差异一边进行同步
1.2 rsync的特性
? 支持拷贝特殊文件,如连接文件等
? 可以有排除指定文件或目录同步的功能,相当于打包命令tar的排除功能
? 可以做到保持源文件或目录的权限、时间、软连接、属主、属组等所有属性均不改变 (-p选项)
? 可以实现增量同步,即只同步发生变化的数据,因此数据传输效率很高
? 可以使用rcp、rsh、ssh等方式来配合传输文件(rsync本身不对数据加密)
? 可以通过socket(进程方式)传输文件和数据(服务端和客户端)
? 支持匿名的或认证(无需系统用户)的进程模式传输,可方便安全的进行数据备份及镜像备份
1.3 rsync常用选项
-v(--verbose):详细模式输出,即显示传输时的进度信息
-z(--compress):传输时对数据进行压缩处理,--compress-level=数字,可以按照压缩级别压缩
-a(--archive):归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rtopgDl
-r(--recursive):对子目录以递归模式进行处理,即目录下的所有目录都同样处理
-t(--time):保持文件时间信息(时间属性)
-o(--owner):保持文件属主信息
-p(--perms):保持文件权限
-g(--group):保持文件属组信息
-D(--devices):保持设备文件信息
-l(--links):保持软连接文件信息
1.4 rsync的三种工作模式
1.4.1 本地模式
? 【格式】
rsync 选项 源 目的
? 【实例】
[[email protected] tmp]# rsync -avz /etc/hosts /tmp/
sending incremental file list
hosts

sent 183 bytes received 31 bytes 428.00 bytes/sec
total size is 296 speedup is 1.38
[[email protected] tmp]# ls
hosts
1.4.2 ssh通道模式(shell模式)
? 【格式】
rsync 选项 源 用户@远端主机:远端目录 (推动作)
rsync 选项 用户@远端主机:远端目录 源 (拉动作)
? 【实例】
###################################推动作######################################
[[email protected] tmp]# rsync -avz /etc/hosts -e ‘ssh -p 22‘ [email protected]:/tmp/
The authenticity of host ‘172.16.1.31 (172.16.1.31)‘ can‘t be established.
RSA key fingerprint is c2:34:59:81:a2:a7:9c:0a:23:9b:cf:1d:bb:d4:8e:ad.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘172.16.1.31‘ (RSA) to the list of known hosts.
[email protected]‘s password:
sending incremental file list
hosts
sent 183 bytes received 31 bytes 47.56 bytes/sec
total size is 296 speedup is 1.38
####################################拉动作#####################################
[[email protected] tmp]# rsync -avz -e ‘ssh -p 22‘ [email protected]:/tmp/ /tmp/
[email protected]‘s password:
receiving incremental file list
./
hosts
.ICE-unix/

sent 37 bytes received 238 bytes 110.00 bytes/sec
total size is 296 speedup is 1.08
[[email protected] tmp]# ls
hosts
1.4.3 daemon模式
? 【格式】
rsync 选项 源 用户@主机::模块 --password-file=客户端密码配置文件(推动作)
rsync 选项 用户@主机::模块 目的目录 --password-file=客户端密码配置文件(拉动作)
? 【实例】
######################################拉动做###################################
[[email protected] ~]# rsync -avz [email protected]::backup/ /tmp/ --password-
file=/etc/rsync.password
receiving incremental file list
./
stu01
......
sent 257 bytes received 551 bytes 1616.00 bytes/sec
total size is 0 speedup is 0.00
[[email protected] ~]# cd /tmp/
[[email protected] tmp]# ls
stu01 stu02 stu03 stu04 stu05 stu06 stu07 stu08 stu09 stu10
######################################推动做###################################
[[email protected] tmp]# rsync -avz /tmp/ [email protected]::backup/ --password-file=/etc/rsync.password
sending incremental file list
./
stu01
......
.ICE-unix/

sent 517 bytes received 205 bytes 1444.00 bytes/sec
total size is 0 speedup is 0.00
第2章 rsync daemon模式的配置
2.1 服务端的配置
2.1.1 查看安装环境
[[email protected] ~]# cat /etc/redhat-release
CentOS release 6.9 (Final)
[[email protected] ~]# uname -r
2.6.32-696.el6.x86_64
2.1.2 查看是否有rsync安装包
[[email protected] ~]# rpm -qa rsync
rsync-3.0.6-12.el6.x86_64
注意:若没有该安装包,可以通过yum进行安装,安装命令如下:
[[email protected] ~]# yum install -y rsync
2.1.3 添加rsync用户,用来管理本地目录
[[email protected] ~]# useradd rsync -s /sbin/nologin -M
[[email protected] ~]# id rsync
uid=501(rsync) gid=501(rsync) groups=501(rsync)
注意:该用户是虚拟用户,不需要进行登录
2.1.4 生成配置文件/etc/rsyncd.conf(该文件默认是不存在的)
[[email protected] ~]# vim /etc/rsyncd.conf
################################写入的内容如下#################################
#rsync_config____start
#created by oldboy
##rsyncd.conf start##
uid = rsync
gid = rsync
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
#log file = /rsync/rsyncd.log
[backup]
path = /backup/
ignore errors
read only = false
list = false
hosts allow = 172.16.1.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
#rsync_config_end
[[email protected] ~]# cat /etc/rsyncd.conf #查看
? 【配置文件etc/rsyncd.conf详解】
#rsync_config
start
#created by oldboy
##rsyncd.conf start##
uid = rsync #进程对应的用户 远端的命令使用rsync访问共享目录
gid = rsync #用户组
use chroot = no #和安全相关的
max connections = 200 #最大连接数 即同时允许多少客户同时连接
timeout = 300 #连接超时时间
pid file = /var/run/rsyncd.pid #进程对应的进程号文件
lock file = /var/run/rsync.lock #锁文件 是为了保持数据的一致性
log file = /var/log/rsyncd.log #日志文件 记录访问和出错信息
[backup] #模块名称
path = /backup/ #服务器提供访问的目录
ignore errors #忽略错误
read only = false #忽略可读 表示可写
list = false #不能使用ls的功能 即不能列表
hosts allow = 172.16.1.0/24 #允许哪些机器可以连
hosts deny = 0.0.0.0/32 #禁止哪些用户可以连
auth users = rsync_backup #虚拟用户 独立于系统之外的虚拟用户
secrets file = /etc/rsync.password #虚拟用户对应的用户和密码
#rsync_config_____end
2.1.5 启动并检查是否启动成功
[[email protected] ~]# rsync –daemon
[[email protected] ~]# ps -ef |grep rsync|grep -v grep
2.1.6 建立共享目录并赋予权限
[[email protected] ~]# mkdir /backup/
[[email protected] ~]# chown -R rsync.rsync /backup/
[[email protected] ~]# ls -ld /backup/
注意:如果目录不存在,会报错,详细错误见下面的错误总结
2.1.7 创建密码文件并编辑
[[email protected] ~]# vim /etc/rsync.password
[[email protected] ~]# cat /etc/rsync.password
rsync_backup:123456
注意:密码文件的格式为: 用户:密码
2.1.8 更改密码文件的权限并检查
[[email protected] ~]# chmod 600 /etc/rsync.password
[[email protected] ~]# ls -l /etc/rsync.password
-rw------- 1 root root 20 Jan 16 20:21 /etc/rsync.password
注意:密码文件的权限是600
2.1.9 查看rsync服务的端口
[[email protected] ~]# lsof -i :873
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rsync 1201 root 4u IPv4 10536 0t0 TCP :rsync (LISTEN)
rsync 1201 root 5u IPv6 10537 0t0 TCP
:rsync (LISTEN)
[[email protected] ~]# netstat -tunlp|grep 873
tcp 0 0 0.0.0.0:873 0.0.0.0: LISTEN 1201/rsync
tcp 0 0 :::873 :::
LISTEN 1201/rsync
2.1.10 将rsync服务加入开机自启动
[[email protected] ~]# echo "/usr/bin/rsync --daemon" >>/etc/rc.local
[[email protected] ~]# tail -1 /etc/rc.local
/usr/bin/rsync --daemon
2.2 客户端配置步骤
2.2.1 建立密码文件,只需在文件中写入密码即可
[[email protected] ~]# vim /etc/rsync.password
[[email protected] ~]# cat /etc/rsync.password
123456
2.2.2 给密码文件设置权限
[[email protected] ~]# chmod 600 /etc/rsync.password
[[email protected] ~]# ls -l /etc/rsync.password
-rw------- 1 root root 7 Mar 8 10:56 /etc/rsync.password
注意:密码文件的权限是600
2.2.3 建立打包目录
[[email protected] ~]# mkdir /backup/
2.3 测试
2.3.1 在客户端建立测试文件
[[email protected] ~]# cd /backup/
[[email protected] backup]# touch {01..10}
[[email protected] backup]# ls
stu01 stu02 stu03 stu04 stu05 stu06 stu07 stu08 stu09 stu10
2.3.2 测试命令
【方法1】
[[email protected] backup]# rsync -avz /backup/ [email protected]::backup/ --password-
file=/etc/rsync.password
【方法2】
[[email protected] backup]# rsync -avz /backup/ rsync://[email protected]/backup/ --
password-file=/etc/rsync.password
2.4 rsync多模块的配置
2.4.1 编辑配置文件/etc/rsyncd.conf
[[email protected] oldboy]# vim /etc/rsyncd.conf
[[email protected] oldboy]# cat /etc/rsyncd.conf
#rsync_config____start
#created by oldboy
##rsyncd.conf start##
uid = rsync
gid = rsync
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
#log file = /rsync/rsyncd.log
ignore errors
read only = false
list = false
hosts allow = 172.16.1.0/24
#hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password

[backup]
path = /backup/
[oldboy]
path = /oldboy/
#rsync_config_____end
2.4.2 创建目录并赋予权限
[[email protected] ~]# mkdir /oldboy/
[[email protected] ~]# chown -R rsync.rsync /oldboy/
[[email protected] ~]# ls -ld /oldboy/
2.4.3 重启rsync服务
[[email protected] ~]# pkill rsync
[[email protected] ~]# ps -ef |grep rsync |grep -v grep
[[email protected] ~]# rsync --daemon
2.4.4 在客户端进行测试
[[email protected] ~]# rsync -avz /backup/ [email protected]::oldboy/ --password-
file=/etc/rsync.password
2.5 rsync多用户的配置
2.5.1 编辑配置文件/etc/rsyncd.conf
[[email protected] ~]# vim /etc/rsyncd.conf
[[email protected] ~]# cat /etc/rsyncd.conf
#rsync_config____start
#created by oldboy
##rsyncd.conf start##
uid = rsync
gid = rsync
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
#log file = /rsync/rsyncd.log
ignore errors
read only = false
list = false
hosts allow = 172.16.1.0/24
#hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password

[backup]
path = /backup/
[oldboy]
path = /oldboy/
auth users = test
secrets file = /etc/rsync.password.oldboy
#rsync_config_____end
2.5.2 创建密码文件/etc/rsync.password.oldboy
[[email protected] ~]# vim /etc/rsync.password.oldboy
[[email protected] ~]# cat /etc/rsync.password.oldboy
test:123456
2.5.3 在客户端进行测试
[[email protected] ~]# rsync -avz /backup/ [email protected]::oldboy/ --password-
file=/etc/rsync.password
注意:文档中多模块及多用户的配置都是在daemon服务搭好的基础上进行的
第3章 服务模式排除及无差异同步
3.1 服务模式排除
? 【命令】
[[email protected] backup]# rsync -avz --exclude=a /backup/ [email protected]::backup/ --
password-file=/etc/rsync.password #排除一项
[[email protected] backup]# rsync -avz --exclude={a..g} /backup/ [email protected]::backup/ --password-file=/etc/rsync.password #排除连续多项
[[email protected] backup]# rsync -avz --exclude={a,c} /backup/ [email protected]::backup/ --password-file=/etc/rsync.password #排除不连续的多项

3.2 无差异同步
? 【命令】
[[email protected] backup]# rsync -avz --delete /backup/ [email protected]::backup/ --
password-file=/etc/rsync.password
注意:该项尽可能的不用否则会引起血的惨案

第4章 企业案列
4.1 案例1
某运维人员在做数据备份,导致带宽被占满,致使用户无法访问网站
4.2 案例2
某视频网站的运维人员在往线上服务器上发布视频时,使用了无差异同步(如下命令),导致服务器上之前的视频全部被清空,只留下当天推送的视频
[[email protected] backup]#rsync -avz --delete /backup/ [email protected]::backup/ --
password-file=/etc/rsync.password

第5章节 错误重现
5.1 服务端错误
5.1.1 rsync服务端缺少共享目录
? 【错误实例】

? 【解决方法】
只需在服务端创建共享目录,然后赋予其权限即可
[[email protected] ~]# mkdir /backup
[[email protected] ~]# ls -ld /backup/
drwxr-xr-x 2 root root 4096 Mar 8 10:00 /backup/
[[email protected] ~]# chown -R rsync.rsync /backup/
[[email protected] ~]# ls -ld /backup/
drwxr-xr-x 2 rsync rsync 4096 Mar 8 10:00 /backup/
? 【测试】
在客户端进行推送

在服务端进行查看校验:

5.1.2 rsync服务端共享目录权限不够
? 【错误实例】

? 【解决方法】
只需修改服务端共享目录的权限即可:
[[email protected] ~]# ls -ld /backup/
drwxr-xr-x 2 root root 4096 Mar 8 10:26 /backup/
[[email protected] ~]# chown -R rsync.rsync /backup/
[[email protected] ~]# ls -ld /backup/
drwxr-xr-x 2 rsync rsync 4096 Mar 8 10:26 /backup/
? 【测试】
在客户端进行推送
[[email protected] mail]# rsync -avz /backup/ [email protected]::backup/ --password-
file=/etc/rsync.password
sending incremental file list

sent 101 bytes received 8 bytes 218.00 bytes/sec
total size is 0 speedup is 0.00

在服务端进行查看校验
[[email protected] ~]# cd /backup/
[[email protected] backup]# ls
stu01 stu02 stu03 stu04 stu05 stu06 stu07 stu08 stu09 stu10

5.1.3 服务端缺少用户
? 【错误实例】

? 【解决方法】
[[email protected] ~]# useradd rsync -s /sbin/nologin -M
[[email protected] ~]# id rsync
uid=501(rsync) gid=501(rsync) groups=501(rsync)
? 【测试】
在客户端进行推送
[[email protected] mail]# rsync -avz /backup/ [email protected]::backup/ --password-
file=/etc/rsync.password
sending incremental file list

sent 101 bytes received 8 bytes 218.00 bytes/sec
total size is 0 speedup is 0.00

在服务端查看校验
[[email protected] ~]# cd /backup/
[[email protected] backup]# ls
stu01 stu02 stu03 stu04 stu05 stu06 stu07 stu08 stu09 stu10

5.1.4 客户端在推送时模块多一个斜线
? 【错误实例】

? 【解决方法】
把多的斜线去掉即可
5.2 客户端错误
5.2.1 客户端密码文件不对
? 【错误实例】

? 【解决方法】
修改密码文件
? 【测试】
在客户端进行推送:
[[email protected] backup]# rsync -avz /backup/ [email protected]::backup/ --password-
file=/etc/rsync.password

在服务端进行查看校验:
[[email protected] ~]# cd /backup/
[[email protected] backup]# ls
stu01 stu02 stu03 stu04 stu05 stu06 stu07 stu08 stu09 stu10

原文地址:http://blog.51cto.com/lzhnb/2084296

时间: 2024-10-07 00:29:38

linux集群搭建之rsync服务的搭建的相关文章

Linux集群配置ntp时间同步服务

集群中时间不同步有可能会让大数据的应用程序运行混乱,造成不可预知的问题,比如Hbase,当时间差别过大时就会挂掉,所以在大数据集群中,ntp服务,应该作为一种基础的服务,以下在演示在CentOS 7.2集群上配置ntp服务的过程 首先检查系统中是否安装ntp包: rpm -q ntp 我这里是只是基础服务器操作系统,所以没有安装ntp服务 然后,执行命令在线安装ntp: yum -y install ntp 安装成功之后,再次执行 rpm -q ntp 可以看到对应的包: 这个时候可以使用命令查

linux集群下 solr集群搭建

首先介绍一下系统架构: * 这个图中代表的是三个solr实例,每个实例包括两个core,组成一个solrcloud * 索引集合包括两个 shard(shard1和shard2),shard1和shard2分别由三个core组成,其中一个L eader两个Replication,Leader是由zookeeper选举产生,zookeeper控制每个shard上三个core的索引数据一致,解决高可用和高并发问题. * Collection在solrcloud集群中是一个索引结构,被划分为一个或多个

基于Vmare的虚拟Linux集群搭建-lvs+keepalived

基于Vmare的虚拟Linux集群搭建-lvs+keepalived 本文通过keepalived实现lvs服务器的的双机热备和真实服务器之间的负载均衡.这方面的blog挺多,但是每个人搭建集群的环境不同,遇到的问题也不同,本文简述配置的一些过程以及配置过程中遇到问题时的解决方案. 准本工作 1. 创建Linux虚拟机 本文是基于Vmare虚拟环境搭建集群的,所以首先在Vmare中创建一些虚拟机(安装一个Linux系统,其他的复制第一次安装的即可),本文创建4台虚拟机.网卡模式设置成桥接方式,这

Linux集群服务 LVS

linux虚拟服务器(LVS)项目在linux操作系统上提供了最常见的负载均衡软件. 集群定义: 集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能.可靠性.灵活性方面的相对较高的收益,其任务调度则是集群系统中 的核心技术.本文就集群系统的定义.发展趋势.任务调度等问题进行了简要论述.集群是一组相互独立的.通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理.一个客户与集群相互作用时,集群像是一个独立的服务器.集群配置是用于提高可用性

Linux集群系列之一——集群基础概念

PHP高级工程师之LInux集群(多态主机组合起来,完成一个任务) 在这里和大家分享一下多数网络黑客常用的攻击方式及预防措施. 如有不善,多提意见(QQ:1595068971-邮箱:[email protected]) 负载均衡集群LB(提高服务的病发处理能力为根本)增加处理能力 衡量标准: 病发处理能力(一次性能够处理多少个请求) 高可用集群HA(提升服务的始终在线能力为根本,不会因为宕机而导致服务不可用)增加服务可用性 衡量标准:在线时间 / (在线时间+故障处理时间) 99%,99.9%,

linux集群系列(1) --- Linux集群系统基础

一.简介     1.1. Linux集群系统包括集群节点和集群管理器两部分. 集群节点有时简称为节点.服务器或服务器节点,是提供处理资源的系统,它进行集群的实际工作.一般来讲,它必须进行配置才能成为集群的一部分,也必须运行集群的应用软件.应用软件可以是专用于集群的软件,也可以是设计用于分布式系统的标准软件. Linux集群管理器则是将节点捆绑在一起,以构成单一系统外观的逻辑结构,它用于将任务分解到所有的节点.集群因多种不同的原因而有着不同的类型,建立Linux集群的最直接原因是共享CPU资源,

转:Linux集群-----HA浅谈

通过特殊的软件将若干服务器连接在一起并提供故障切换功能的实体我们称之为高可用集群.可用性是指系统的uptime,在7x24x365的工作环境中,99%的可用性指在一年中可以有87小时36分钟的DOWN机时间,通常在关键服务中这种一天多的故障时间是无法接受的,所以提出了前面提到的错误恢复概念,以满足99.999%的高可用性需求. 这里我们先说一下几个概念: 服务(Service),是HA集群中提供的资源,包括Float IP,共享的存储,apache等等. 成员服务器(Member Server)

linux集群时钟问题

一.ntpd与ntpdate的区别: 摘自:ntpd与ntpdate的区别 - 百事乐 - 博客园  http://www.cnblogs.com/liuyou/archive/2012/07/29/2614330.html 1.区别: ntpd是调整时间,即将时间一点一点的校准过来,最终把时间慢慢校正对: ntpdate是校准时间,即直接调整时间,并不会考虑其他程序,直接结果是时钟跃变. 2.时钟跃变的后果 很多应用程序依赖连续的时钟,即取得的时间是线性的, 基于一个事实:时间不会往回跳跃.

linux集群及系统扩展基础

1.什么是服务器集群 简单来说就是把多台服务器组合到一起按照某一个目的实现特定功能的服务器的集合,也就是服务器集群,而这些服务器都采用linux系统,那么,我们就可以把这个集群称作linux集群. 2.为什么要用到集群 比如说现在有一台服务器,现将此服务器部署为LAMP或者LNMP,并再此上架设了某站点,刚开始有2000个连接并发访问,服务器可以在3秒之内提供正常用户服务,当连接增长到3000时,服务器可以在5秒之内提供服务,相对来说,服务器响应时间越长,用户体验就会下降,当打开网站的时间超过3