Rsync 服务器搭建
Rsync简介
rsync 是一个 Unix 系统下的文件同步和传输工具。
它具备以下特性:
1. 能更新整个目录和树和文件系统
2. 有选择性的保持符号链链、硬链接、文件属于、权限、设备以及时间
等
3. 对于安装来说,无任何特殊权限要求
4. 对于多个文件来说,内部流水线减少文件等待的延时
5. 能用 rsh、ssh 或直接端口做为传输入端口
6. 支持匿名 rsync 同步文件,是理想的镜像工具;
Rsync服务器是指以deamon方式运行rsync服务的服务器,需要打开rsync deamon和启动xinetd服务。默认端口873。
Rsync客户端是发起rsync连接的服务器,安装rsync即可。
Rsync工作场景
Rsync客户端发起连接后,Rsync服务器会检查Rsync客户端提交Rsync服务器内建的户名和密码是否正确,如果通过认证检测,则开始文件传输,传输的过程是按要求先比对文件的大小、属性、权限、MD5值等信息,如果两端文件信息不一致,则按要求同步文件的区别块。
以下以备份rsync服务器的/usr/local/tomcat6/web 目录为例进行部署。
Rsync服务器架设简单,多数发行版本unix或者linux操作系统甚至默认都安装了rsync
全局配置文件 /etc/rsyncd.conf 有时候安装后没有此文件不必惊慌,自己创建一个。默认安装的也可能不存在该文件。
Rsync服务器搭建步骤:
1,安装rsync软件(略)
2,开启rsync deamon的xinetd服务
#chkconfig xinetd on 打开了xinetd的启动项(输入命令,如果系统不报错即可)
#chkconfig rsync on 打开rsync的启动项(输入命令,如果系统不报错即可)
#vi /etc/xinetd.d/rsync 检查配置文件是否正确
大致检查下,文件内容如下:
# default: off
# description: The rsync server is a good addition
to an ftp server, as it \
# allows crc checksumming etc.
service rsync
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = daemon
log_on_failure += USERID
}
3,配置rsync
#vi /etc/rsyncd.conf 设置rsync配置文件(新建文件)
添加以下内容
uid=nobody
gid=nobody
max connetctions=4
use chroot=no
log file=/var/log/rsyncd.log
transfer logging=yes
log format=%t %a %m %f %b
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
#auth users=root
secrets file=/etc/rsyncd.pwd
[web]
path=/usr/local/tomcat6/web
comment=backup web
ignore errors
read only=yes
list=no
auth users=cms
secrets file=/etc/rsyncd.pwd
配置说明:
uid=nobody
gid=nobody
uid 和 gid是系统内建用户,必须存在于系统/etc/passwd文件中。这里设置了最小权限
max connetctions=4
max connections是客户端同时连接数,为了限制多线程同步的。
use chroot=no
不使用chroot。如果使用chroot,同步时候需要root权限,另外对符号链接文件, 将会排除在外。所以我们不使用chroot。
secrets file=/etc/rsyncd.pwd定义密码文件rsyncd.pwd
[web]
设置备份任务名称为web,下面的都是web备份任务参数设置,一直到另一个[]截止。我们可以创建多个备份任务。
path=/usr/local/tomcat6/web定义需要备份目录
comment=backup web定义显示说明,备份web目录
ignore errors 忽略同步中出现的错误
read only=yes定义访问方式为只读
list=no 定义了Rsync客户端是不可以列出目录结构
auth users=cms 定义了客户端备份web项目的用户,这个用户是rsync内建用户与rsync服务器和客户端系统用户无关
4,设置rsync内建用户和密码
#echo "cms:cmscms" >> /etc/rsyncd.pwd
这里我们设置rsync内建用户cms,密码cmscms
修改密码文件执行权限
#chmod 600 /etc/rsyncd.pwd
5,重启rsync服务
# service xinetd restart 启动服务
Rsync客户端搭建步骤
1,安装rsync软件(略)
2,客户端生成生成验证证文件
#echo "cmscms" >> /etc/rsyncd.pwd cmscms是密码
#chmod 600 /etc/rsyncd.pwd
3,测试
使用如下命令测试Rsync客户端是否可以同步Rsync服务端
#/usr/bin/rsync -vzrtopg --password-file=/etc/rsyncd.pwd --progress --delete-after cms@100.1.1.147::web /usr/local/tomcat6/web
/usr/bin/rsync 是rsync可执行文件路径
-vzrtopg --password-file=/etc/rsyncd.pwd --progress --delete-after 同步参数
cms@100.1.1.147::web 表示客户端以cms用户进行同步,100.1.1.147是rsync服务器端ip地址,web表示rsync服务器端的@web备份任务。
/usr/local/tomcat6/web 是客户端存放备份文件的位置。
rsync参数详解
v,
verbose
详细模式输出
q,
quiet
精简输出模式
c,
checksum
打开校验开关,强制对文件传输进行校验
a,
archive
归档模式,表示以递归方式传输文件,并保持所有文
件属性,等于rlptgoD
r,
recursive
对子目录以递归模式处理
R,
relative
使用相对路径信息
rsync foo/bar/foo.c remote:/tmp/
则在/tmp目录下创建foo.c文件,而如果使用R
参数:
rsync R
foo/bar/foo.c remote:/tmp/
则会创建文件/tmp/foo/bar/foo.c,也就是会保持完全路径信息。
b,
backup
创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用suffix选项来指定不同的备份文件前缀。
backupdir
将备份文件(如~filename)存放在在目录下。
suffix=
SUFFIX 定义备份文件前缀
u,
update
仅仅进行更新,也就是跳过所有已经存在于DST,并
且文件时间晚于要备份的文件。(不覆盖更新的文件)
l,
links
保留软链结
L,
copylinks
想对待常规文件一样处理软链结
copyunsafelinks
仅仅拷贝指向SRC路径目录树以外的链结
safelinks
忽略指向SRC路径目录树以外的链结
H,
hardlinks
保留硬链结
p,
perms
保持文件权限
o,
owner
保持文件属主信息
g,
group
保持文件属组信息
D,
devices
保持设备文件信息
t,
times
保持文件时间信息
S,
sparse
对稀疏文件进行特殊处理以节省DST的空间
n,
dryrun
现实哪些文件将被传输
W,
wholefile
拷贝文件,不进行增量检测
x,
onefilesystem
不要跨越文件系统边界
B,
blocksize=
SIZE 检验算法使用的块尺寸,默认是700字节
e,
rsh=
COMMAND 指定替代rsh的shell程序
rsyncpath=
PATH 指定远程服务器上的rsync命令所在路径信息
C,
cvsexclude
使用和CVS一样的方法自动忽略文件,用来排
除那些不希望传输的文件
existing
仅仅更新那些已经存在于DST的文件,而不备份那些新
创建的文件
delete
删除那些DST中SRC没有的文件
deleteexcluded
同样删除接收端那些被该选项指定排除的文件
deleteafter
传输结束以后再删除
ignoreerrors
及时出现IO错误也进行删除
maxdelete=
NUM 最多删除NUM个文件
partial
保留那些因故没有完全传输的文件,以是加快随后的再次传输
force
强制删除目录,即使不为空
numericids
不将数字的用户和组ID匹配为用户名和组名
timeout=
TIME IP超时时间,单位为秒
I,
ignoretimes
不跳过那些有同样的时间和长度的文件
sizeonly
当决定是否要备份文件时,仅仅察看文件大小而不考虑文件时间
modifywindow=
NUM 决定文件是否时间相同时使用的时间戳窗口,
默认为0
T
tempdir=
DIR 在DIR中创建临时文件
comparedest=
DIR 同样比较DIR中的文件来决定是否需要备份
P
等同于 partial
progress
显示备份过程
z,
compress
对备份的文件在传输时进行压缩处理
exclude=
PATTERN 指定排除不需要传输的文件模式
include=
PATTERN 指定不排除而需要传输的文件模式
excludefrom=
FILE 排除FILE中指定模式的文件
includefrom=
FILE 不排除FILE指定模式匹配的文件
version
打印版本信息
address
绑定到特定的地址
config=FILE 指定其他的配置文件,不使用默认的rsyncd.conf
文件
port=
PORT 指定其他的rsync服务端口
blockingio
对远程shell使用阻塞IO
stats
给出某些文件的传输状态
progress
在传输时现实传输过程
logformat=
FORMAT 指定日志文件格式
passwordfile=FILE 从FILE中得到密码
bwlimit=KBPS 限制I/O带宽,KBytes per second
h,
help
显示帮助信息
Rsync 服务器搭建的更多相关文章
- rsync 服务器搭建遇到的问题
问题一: @ERROR: chroot failed rsync error: error starting client-server protocol (code 5) at main.c(152 ...
- rsync服务器的搭建
Rsync(remote synchronize)是一个远程数据同步工具,简要的概括就是主机于主机之间的文件目录数据的一个同步.下面就是rsync服务器的搭建过程. 系统环境 平台:Centos ...
- 搭建Rsync服务器
部署Rsync服务器需要创建至少 一个配置文件,默认在系统中并不存在Rsync配置文件,对于服务器而言,配置文件创建完成后,使用守护进程模式启动rsync程序即可. 使用Centos 系统安装 部署R ...
- [Linux]Linux下rsync服务器和客户端配置
一.rsync简介 Rsync(remote sync)是UNIX及类UNIX平台下一款神奇的数据镜像备份软件,它不像FTP或其他文件传输服务那样需要进行全备份,Rsync可以根据数据的变化进行差异( ...
- 阿里云服务器搭建SVN
简单步骤介绍 1:安装svn apt-get install subversion 2. 开启svn服务器 svnserve -d 检查是否开启:ps aux | grep svnserve 若出现如 ...
- Git本地服务器搭建及使用详解
Git本地服务器搭建及使用 Git是一款免费.开源的分布式版本控制系统.众所周知的Github便是基于Git的开源代码库以及版本控制系统,由于其远程托管服务仅对开源免费,所以搭建本地Git服务器也是个 ...
- Linux下的SVN服务器搭建
Linux下的SVN服务器搭建 鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在搭建svn服务器时不再犯错,不再被网上漫天的坑爹作品所坑害,故此总 ...
- 版本控制-svn服务器搭建和常用命令(centos 6.3)
Svn是比较优秀的版本控制工具,虽然功能和性能上无法和Git媲美,但由于其容易搭建和使用的特性,所以在各个小公司还是很受欢迎的.使用Git可参考<版本控制-Git服务器搭建和常用命令使用> ...
- 版本控制-Git服务器搭建和常用命令使用
Git是目前世界上最先进的分布式版本控制系统(没有之一).使用Svn的请参考<版本控制-svn服务器搭建和常用命令(centos 6.3)>,下面介绍Git的常用命令 常用命令 简单版 升 ...
随机推荐
- 如何拿到阿里算法校招offer
好多同学有问过怎么能拿到阿里算法类校招的offer,刚好看到这篇文章分享给大家,详情可以看原文链接,原文链接中有视频讲解. 师兄师姐的建议: 之前初学算法的时候上过的公开课和看过的书 1. Cours ...
- 学习SQL笔记
SQL 语句 语法 AND / OR SELECT column_name(s)FROM table_nameWHERE conditionAND|OR condition ALTER TABLE A ...
- 时空上下文视觉跟踪(STC)
论文的关键点是对时空上下文(Spatio-Temporal Context)信息的利用.主要思想是通过贝叶斯框架对要跟踪的目标和它的局部上下文区域的时空关系进行建模,得到目标和其周围区域低级特征的统计 ...
- CorelDRAW X8超低价优惠啦,你却还在用CDR X4破解?!
最近大火的<都挺好> 已经完美收官 出于好奇,小编也正在追剧呢 同样出生在畸形的原生家庭 长大后 有钱就是苏明玉 没钱就是樊胜美 所以不要抱怨老天给了你怎样的资源 想要什么就要靠自己的双手 ...
- Map之HashMap的get与put流程,及hash冲突解决方式
在java中HashMap作为一种Map的实现,在程序中我们经常会用到,在此记录下其中get与put的执行过程,以及其hash冲突的解决方式: HashMap在存储数据的时候是key-value的键值 ...
- MySQL 视图触发器事务存储过程函数
事务 致命三问 什么是事务:开启了一个包含多条SQL语句的事务,这些SQL语句要么都执行成功,要么有别想成功:例如A向B转账,二人账户并不属于一家银行,在转账过程中由于网络问题,导致A显示转账 成功 ...
- mybatis入门截图二
-------------------- 线程不安全问题 首先明白什么是线程不安全: 举例:struts2中,每个action中都定义了model模型对象(action类中是全局对象的存在 数据域属 ...
- jQuery选择器练习中,带空格和不带空格的问题
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- hdu 3836 强连通+缩点:加边构强连通
#include<stdio.h>//求出其所有的强连通分量缩点,选出出度和入度最大的那个就是要求的边 #include<string.h> #include<stdli ...
- Google NewSQL之Spanner
谷歌分布式三宝 BigTable.GFS.MapReduce这传说中的谷歌分布式三驾马车,虽然谷歌没有公开具体实现代码,但却公布了相应论文,对分布式文件系统.大数据挖掘和NoSQL流行起了重大促进作用 ...