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的常用命令 常用命令 简单版 升 ...
随机推荐
- Docker的特性解析
Docker简介与入门:http://segmentfault.com/blog/p_chou/1190000000448808 Docker是个新生的事物,概念类似虚拟化.网上关于Docker入门的 ...
- APUE学习笔记3——文件和目录
1 简介 之前学习了执行I/O操作的基本函数,主要是围绕普通文件I/O的打开.读或写.下面继续学习Unix文件系统的其他特征和文件的基本性质.我们将从stat函数开始,了解stat结构所代表的文件属性 ...
- 从U盘安装CentOS7.3教程(转载)
0.准备工作: 一台没系统的普通电脑u盘一个(大于1G,最小安装的话不超过1G,根据选择系统大小匹配U盘即可) CentOS7.3 iso文件一个UltraISO工具 1.制作U盘 ①使用UltraI ...
- Go 语言一本通
什么是GO语言? Go 是一个开源的编程语言,它能让构造简单.可靠且高效的软件变得容易. Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发 ...
- -ms-,-moz-,-webkit-,-o-含义
transform:rotate(30deg); //统一标识语句 -ms-transform:rotate(30deg); //-ms代表ie内核识别码 -moz-transform:rotate( ...
- node——获取路由中的参数
var express=require('express'); var app=express(); app.get('/',function(req,res){ res.send('Index'); ...
- 报错The jarsigner could not be found. Make sure to run with the build with a JDK。的解决方法
这种报错是因为eclipse启动时没有走你设置的jdk路径,eclipse走的路径/bin下没有jarsigner.exe.所以报错,解决办法: 指定eclipse启动jdk 按住alt键,用鼠标拖动 ...
- 【模板】最大流模板(dinic)
题目描述 如题,给出一个网络图,以及其源点和汇点,求出其网络最大流. 输入输出格式 输入格式: 第一行包含四个正整数N.M.S.T,分别表示点的个数.有向边的个数.源点序号.汇点序号. 接下来M行每行 ...
- 记录python爬取猫眼票房排行榜(带stonefont字体网页),保存到text文件,csv文件和MongoDB数据库中
猫眼票房排行榜页面显示如下: 注意右边的票房数据显示,爬下来的数据是这样显示的: 网页源代码中是这样显示的: 这是因为网页中使用了某种字体的缘故,分析源代码可知: 亲测可行: 代码中获取的是国内票房榜 ...
- 解决SpringBoot+JPA中使用set方法时自动更新数据库问题
项目进行了三分之二了,突然出现一个很诡异的bug,数据库存储的用户表中密码信息总是自动消失一部分,头疼了几天后突然想起同事有个对低权限用户查询的用户信息向前台传送时会把密码设成null后再传输,心想是 ...