FreeBSD Rsync的配置Word格式文档下载.docx
- 文档编号:22976289
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:12
- 大小:22.25KB
FreeBSD Rsync的配置Word格式文档下载.docx
《FreeBSD Rsync的配置Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《FreeBSD Rsync的配置Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
http:
//rsync.samba.org/
3.2服务器配置
使用命令
FreeBSD#tar–xvfrsync-patches-3.0.9pre1.tar.gz#解压
FreeBSD#cdrsync-3.0.9pre1
FreeBSD#./configure#编译,默认路径,./configure–prefix=/*/*可以自定义
FreeBSD#make#在用源码包编译安装之前,您得安装gcc等编译开具才行
FreeBSD#makeinstall
rsync的主要有以下三个配置文件rsyncd.conf(主配置文件)、rsyncd.secrets(密码文件)、rsyncd.motd(rysnc服务器信息)
服务器配置文件(/etc/rsyncd.conf),该文件默认不存在,请创建它。
具体步骤如下:
FreeBSD#touch/etc/rsyncd.secrets
#创建rsyncd.secrets,这是用户密码文件。
FreeBSD#chownrootrsyncd.secrets#文件属主更改为root
FreeBSD#chmod600/etc/rsyncd/rsyncd.secrets
#设定权限为600,必须为600,不然备份会失败。
FreeBSD#touch/etc/rsyncd.conf
#创建rsyncd.conf,这是rsync服务器的配置文件。
FreeBSD#touch/etc/rsyncd.motd
设定/etc/rsyncd.conf
pidfile=/var/run/rsyncd.pid#告诉进程写到/var/run/rsyncd.pid文件中;
port=873#默认端口
address=192.168.128.128#本机IP地址
uid=root#指明传输用户,默认是nobody.
gid=nobody
#uid=nobody
#gid=root
usechroot=yes
readonly=false#false允许上传,true只允许下载
hostsallow=192.168.128.129/255.255.255.0#允许连接地址
hostsdeny=*#拒绝连接地址
maxconnections=5#最大连接数
motdfile=/etc/rsyncd.motd#服务器信息,文件内容任意写
logformat=%t%a%m%f%b#日志书写格式
syslogfacility=local3
timeout=300
[home]#模块名称
path=/home#备份路径/上传路径
list=yes#是否允许列表显示
ignoreerrors#忽略I/O错误
authusers=root#备份用户
secretsfile=/etc/rsyncd.secrets#密码文件
comment=ThisisRHEL4data#注释可以自定义
exclude=easylife/samba/#排除目录,easylife/samba/目录间有空格
[home2]
path=/home2
list=yes
ignoreerrors
comment=ThisisRHEL4home2
secretsfile=/etc/rsyncd/rsyncd.secrets
注:
关于authusers是必须在服务器上存在的真实的系统用户,如果你想用多个用户以,号隔开,比如authusers=easylife,root
设定密码文件
密码文件格式很简单,rsyncd.secrets的内容格式为:
用户名:
密码
我们在例子中rsyncd.secrets的内容如下类似的;
在文档中说,有些系统不支持长密码,自己尝试着设置一下吧。
root:
root
注:
1、将rsyncd.secrets这个密码文件的文件属性设为root拥有,且权限要设为600,否则无法备份成功!
出于安全目的,文件的属性必需是只有属主可读。
2、这里的密码值得注意,为了安全你不能把系统用户的密码写在这里。
比如你的系统用户easylife密码是000000,为了安全你可以让rsync中的easylife为keer。
这和samba的用户认证的密码原理是差不多的。
设定rsyncd.motd文件;
它是定义rysnc服务器信息的,也就是用户登录信息。
比如让用户知道这个服务器是谁提供的等;
类似ftp服务器登录时,我们所看到的linuxsir.orgftp……。
当然这在全局定义变量时,并不是必须的,你可以用#号注掉,或删除;
我在这里写了一个rsyncd.motd的内容为:
++++++++++++++++++++++++++++++++++++++++++++++
Welcometousethersyncservices!
2002------2012
++++++++++++++++++++++++++++++++++++++++++++++
3.3服务器启动
启动rsync服务器相当简单,有以下几种方法
A、--daemon参数方式,是让rsync以服务器模式运行
FreeBSD#/usr/bin/rsync--daemon
--config=/etc/rsyncd/rsyncd.conf
#--config用于指定rsyncd.conf的位置,如果在/etc下可以不写
B、xinetd方式
修改services加入如下内容
#nano-w/etc/services
rsync 873/tcp #rsync
rsync 873/udp #rsync
这一步一般可以不做,通常都有这两行(我的RHEL4和GENTOO默认都有)。
修改的目的是让系统知道873端口对应的服务名为rsync。
如没有的话就自行加入。
设定/etc/xinetd.d/rsync,简单例子如下:
#default:
off
#description:
Thersyncserverisagoodadditiontoamftpserver,asit\
#
allowscrcchecksummingetc.
servicersync
{
disable=no
socket_type
=stream
wait
=no
user
=root
server
=/usr/bin/rsync
server_args
=--daemon
log_on_failure
+=USERID
}
上述,主要是要打开rsync這個daemon,一旦有rsyncclient要连接時,xinetd会把它转介給rsyncd(port873)。
然后servicexinetdrestart,使上述设定生效.
rsync服务器和防火墙
Linux防火墙是用iptables,所以我们至少在服务器端要让你所定义的rsync服务器端口通过,客户端上也应该让通过。
#iptables-AINPUT-ptcp-mstate--stateNEW
-mtcp--dport873-jACCEPT
#iptables-L
查看一下防火墙是不是打开了873端口
如果你不太懂防火墙的配置,可以先serviceiptablesstop将防火墙关掉。
当然在生产环境这是很危险的,做实验才可以这么做哟!
3.4客户机配置
服务器是重量级应用,所以数据的网络备份还是极为重要的。
我们可以在生产型服务器上配置好rsync服务器。
我们可以把一台装有rysnc机器当做是备份服务器。
让这台备份服务器,每天在早上4点开始同步服务器上的数据;
并且每个备份都是完整备份。
有时硬盘坏掉,或者服务器数据被删除,完整备份还是相当重要的。
这种备份相当于每天为服务器的数据做一个镜像,当生产型服务器发生事故时,我们可以轻松恢复数据,能把数据损失降到最低。
FreeBSD#tar–xvfrsync-patches-3.0.9pre1.tar.gz注:
解压
FreeBSD#makeinstall
FreeBSD#mkdir
/etc/cron.daily.rsync#创建同步脚本
FreeBSD#cd
/etc/cron.daily
FreeBSD#touchrhel4home.sh
FreeBSD#chmod755/etc/cron.daily.rsync/*.sh
FreeBSD#mkdir/etc/rsyncd/#创建密码文件
FreeBSD#touch/etc/rsyncd/rsyncrhel4root.secrets
FreeBSD#chmod600
/etc/rsyncd/rsync.*
FreeBSD#echo"
mike"
>
/etc/rsyncd/rsyncrhel4root.secrets#修改密码文件内容
设定rhel4home.sh文件
#!
/bin/sh#指明是shell脚本,不可省略
/usr/bin/rsync-avzP--password-file=/etc/rsyncd/rsyncrhel4root.passwordroot@192.168.145.5:
:
rhel4home/home/rhel4homebak/$(date+'
%m-%d-%y'
)
#rhel4opt数据同步到/home/rhel4optbak/目录下,并按年月日归档创建目录
3.5客户机启动
A、备份同步命令
rsync–azu–progress–password-file=/etc/rsync.passroot@192.168.4.28:
rhel4home/usr/rhel4home
B、上传同步命令
rsync–vzrtopg–progress–password-file=/etc/rsync.pass/usr/rhel4homeroot@192.168.4.28:
rhel4home
C、加入到计划任务
FreeBSD#crontab–e
#加入如下内容
*****/usr/cron.daily.rsync/rhel4home.sh
Servicecronstart;
#启动服务
Servicecronstop;
#关闭服务
Crontab的用法参考《FreeBSDcrontab的用法》
4、rsync语法详解
rsync的命令格式可以为:
1.rsync[OPTION]...SRC[SRC]...[USER@]HOST:
DEST
2.rsync[OPTION]...[USER@]HOST:
SRCDEST
3.rsync[OPTION]...SRC[SRC]...DEST
4.rsync[OPTION]...[USER@]HOST:
SRC[DEST]
5.rsync[OPTION]...SRC[SRC]...[USER@]HOST:
6.rsync[OPTION]...rsync:
//[USER@]HOST[:
PORT]/SRC[DEST]
rsync有六种不同的工作模式:
1.拷贝本地文件;
当SRC和DES路径信息都不包含有单个冒号"
"
分隔符时就启动这种工作模式。
2.使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。
当DST路径地址包含单个冒号"
分隔符时启动该模式。
3.使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。
当SRC地址路径包含单个冒号"
4.从远程rsync服务器中拷贝文件到本地机。
当SRC路径信息包含"
5.从本地机器拷贝文件到远程rsync服务器中。
当DST路径信息包含"
6.列远程机的文件列表。
这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。
-a以archive模式操作、复制目录、符号连接相当于-rlptgoD
rsync中的参数
-r是递归
-l是链接文件,意思是拷贝链接文件;
-p表示保持文件原有权限;
-t保持文件原有时间;
-g保持文件原有用户组;
-o保持文件原有属主;
-D相当于块设备文件;
-z传输时压缩;
-P传输进度;
-v传输时的进度等信息,和-P有点关系,自己试试。
可以看文档;
-essh的参数建立起加密的连接。
-u只进行更新,防止本地新文件被重写,注意两者机器的时钟的同时
--progress是指显示出详细的进度情况
--delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致
--password-file=/password/path/file来指定密码文件,这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读。
5、FAQ
Q:
如何通过ssh进行rsync,而且无须输入密码?
A:
可以通过以下几个步骤
1.通过ssh-keygen在serverA上建立SSHkeys,不要指定密码,你会在~/.ssh下看到identity和identity.pub文件
2.在serverB上的home目录建立子目录.ssh
3.将A的identity.pub拷贝到serverB上
4.将identity.pub加到~[userb]/.ssh/authorized_keys
5.于是serverA上的A用户,可通过下面命令以用户Bssh到serverB上了。
e.g.ssh-luserBserverB。
这样就使serverA上的用户A就可以ssh以用户B的身份无需密码登陆到serverB上了。
Q:
如何通过在不危害安全的情况下通过防火墙使用rsync?
解答如下:
这通常有两种情况,一种是服务器在防火墙内,一种是服务器在防火墙外。
无论哪种情况,通常还是使用ssh,这时最好新建一个备份用户,并且配置sshd仅允许这个用户通过RSA认证方式进入。
如果服务器在防火墙内,则最好限定客户端的IP地址,拒绝其它所有连接。
如果客户机在防火墙内,则可以简单允许防火墙打开TCP端口22的ssh外发连接就ok了。
我能将更改过或者删除的文件也备份上来吗?
当然可以。
你可以使用如:
rsync-other-options-backupdir=./backup-2000-2-13
...这样的命令来实现。
这样如果源文件:
/path/to/some/file.c改变了,那么旧的文件就会被移到./backup-2000-2-13/path/to/some/file.c,这里这个目录需要自己手工建立起来
我需要在防火墙上开放哪些端口以适应rsync?
视情况而定。
rsync可以直接通过873端口的tcp连接传文件,也可以通过22端口的ssh来进行文件传递,但你也可以通过下列命令改变它的端口:
rsync--port8730otherhost:
或者
rsync-e'
ssh-p2002'
otherhost:
我如何通过rsync只复制目录结构,忽略掉文件呢?
rsync-av--include'
*/'
--exclude'
*'
source-dirdest-dir
为什么我总会出现"
Read-onlyfilesystem"
的错误呢?
看看是否忘了设"
readonly=no"
了
为什么我会出现'
@ERROR:
invalidgid'
rsync使用时默认是用uid=nobody;
gid=nobody来运行的,如果你的系统不存在nobody组的话,就会出现这样的错误,可以试试gid=ogroup或者其它
绑定端口873失败是怎么回事?
如果你不是以root权限运行这一守护进程的话,因为1024端口以下是特权端口,会出现这样的错误。
你可以用--port参数来改变。
为什么我认证失败?
从你的命令行看来:
你用的是
>
bash$rsync-a144.16.251.213:
testtest
Password:
@ERROR:
authfailedonmoduletest
Idontunderstandthis.Cansomebodyexplainastohowtoacomplishthis.
Allsuggestionsarewelcome.
应该是没有以你的用户名登陆导致的问题,试试rsync-amax@144.16.251.213:
Q:
出现以下这个讯息,是怎么一回事?
@ERROR:
authfailedonmodulexxxxx
rsync:
connectionunexpectedlyclosed(90bytesreadsofar)
rsyncerror:
errorinrsyncprotocoldatastream(code12)atio.c(150)
A:
这是因为密码设错了,无法登入成功,请再检查一下rsyncd.secrets中的密码设定,二端是否一致?
passwordfilemustnotbeother-accessible
continuingwithoutpasswordfile
Password:
这表示rsyncd.secrets的档案权限属性不对,应设为600。
请下chmod600rsyncd.secrets
chrootfailed
connectionunexpectedlyclosed(75bytesreadsofar)
A:
这通常是您的rsyncd.conf中的path路径所设的那个目录并不存在所致.请先用mkdir开设好备份目录.
Q:
上传后文件权限被改变导致无法访问怎么办?
A:
在rsyncd.conf中加上一行:
incomingchmod=Du=rwx,Dog=rx,Fu=rwx,Fgo=rx
就会强制把同步以后的目录权限改为755.就解决一目录权限改变的问题。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FreeBSD Rsync的配置 Rsync 配置
![提示](https://static.bdocx.com/images/bang_tan.gif)