当前位置:  操作系统/服务器>linux
本页文章导读:
    ▪使用rsync同步网路备份第1/2页       一. 简介 rsync常用的备份工具, 它目前是由 rsync.samba.org 维护. rsync使用所谓的"rsync算法",提供一个非常快速的档案传输方法, 使local和远端二部主机之间的档案达到同步,它主要是传送二个档案.........
    ▪使用rsync来实现文件同步       rsync ->>> remote synchronize 呵呵,不用解释了吧,还是解释一下吧,文件同步的意思的说。。。 第一步,先来下载这个免费的软件。 rsync.samba.org/ 或者 samba.anu.edu.au/rsync 本站最新版本下.........
    ▪rsync 数据同步使用详解       rsync(d)服务端启动两种方式 1.daemon 2.xinetd inetd 启动后绑在 TCP/873 端口 % cat /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 r.........

[1]使用rsync同步网路备份第1/2页
    来源: 互联网  发布时间: 2013-12-24
一. 简介
rsync常用的备份工具, 它目前是由 rsync.samba.org 维护.
rsync使用所谓的"rsync算法",提供一个非常快速的档案传输方法, 使local和远端二部主机之间的档案达到同步,它主要是传送二个档案的异动部份,而非每次都整份传送, 因此速度相当地快.
rsync它可以搭配rsh或ssh,也可以当成daemon模式使用直接的socket连接, 所以rsync可以当做一个优异的备份工具来使用.
我这简单介绍运用rsync备份远程网路主机档案的基本方法。
在这,我们是给rsync当成linux的一种daemon模式来运行.
首先,先给个简单的定义:当然要一台主机跑rsync daemon模式, 我们就称这台机器为一rsync Server, 或者说这台主机是一台备份主机( Backup Server).
备份主机会开启一个873的端口(port), 等待对方rsync连接.所以服务器记的要开这个端口
连接时, rsync Server 会检查密码是否相符, 若通过密码查核, 则开始进行档案传输.
第一次连通完成时, 会把整份档案传输一次, 下一次就只传送二个档案之间异动的部份.
以上是rsync client (欲加以备份的远程网路主机) 和rsync server 的运作方式。
藉由上述方法, 我们当然也可以设立多部备份主机, 使网路主机上重要的档案能分散至数部主机中, 以分散风险.
一旦完成备份, 我们可以对这些备份主机再做进一步的储存动作, 如使用tar打成tar的包, 把档案备份到硬盘之类.
以下内容,我用Ubuntu 7.10做客户机,Centos5做服务器测试过.
二. 安装法
rsync目前最新版是 2.6.8, 可以到rsync.samba.org 下载.
若您使用 rpm 套件,请用下面的方法安装,当然rhel5和centos5中默认就安装了
#rpm -ivh rsync*.rpm
#yum install rsync
它的设定档位置在 /etc/rsyncd.conf,奇怪,我的没有自动生成这个文件,那我们就来自己配置他
三. 设定 rsync server: (假设这台主机名称为 rsync.x111.com)
rsync server 端要设定以下四项:
1.规划建立备份目录区
2.启动xinetd中的rsync
3.设定: /etc/rsyncd.conf
4.设定: 密码档
依次说明如下:
1. 规划建立备份目录区:
建议您准备一个容量较大且独立的分割区, 并在其中开好备份目录, 如此 /blackup/x99
2. 启动xinetd中的rsync
系统默认没有安装xinetd。
# yum install xinetd
#service xinetd restart
#chkconfig rsync on
以上的操作,主要是要打开rsync这个daemon,一旦有rsync client要连接时,xinetd会把它转介给rsyncd (port 873).
3. 设定 /etc/rsyncd.conf :
全局设置
uid = root
gid = root
use chroot = no # 不使用chroot
max connections = 4 # 最大连接数为4
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log # 日志记录文件
以下的部分,代表开放给某一台rsync client 主机的设定, 简单范本如下:
[x99]
path = /blackup/x99/x99_backup
auth users = x99_backup
secrets file = /etc/rsyncd.secrets
read only = no
以上文件的注解:
[x99] 代表要备份的主机代号, 名称自己设置.
path 用来设定备份档案要存放在那一个目录.这个可先要mkdir开好,可以自己设置
auth users 代表授权的帐号, 可以自己设置.
secrets file 代表储存帐号密码的密码档, 其放置的路径档名.
当然, 这台备份主机, 可以容纳许多 rsync client 连接, 只要在 rsyncd.conf中设置对应的多个部分即可.
以下例子,代表二个主机x99及x100欲备份进来:
[x99]
path = /blackup/x99/x99_backup
comment = XXXXX
auth users = x99_backup
secrets file = /etc/rsyncd.secrets
read only = no
[x100]
path = /blackup/x100/x100_backup
auth users = x100_backup
secrets file = /etc/rsyncd.secrets
read only = no
4. 设定密码文件:
rsyncd.secrets 的内容很容易, 格式为"帐号:密码";
如以下例子:
x99_backup:x99pass
注意! 上述设定只是一个例子,你自己设置可一定千万不要直接套用.
接下来, 要将 rsyncd.secrets 这个密码档的档案属性设为root拥有, 且权限要设为600, 否则无法备份成功!
因此, 请下:
#chown root.root rsyncd.secrets
#chmod 600 rsyncd.secrets
至此, rsync的服务器这端已设定完成, 若欲查看备份日志.
#tail -f /var/log/rsyncd.log
接下来是 client 端(即欲备份的网路主机) 的设定.

    
[2]使用rsync来实现文件同步
    来源: 互联网  发布时间: 2013-12-24
rsync ->>> remote synchronize
呵呵,不用解释了吧,还是解释一下吧,文件同步的意思的说。。。

第一步,先来下载这个免费的软件。

rsync.samba.org/ 或者 samba.anu.edu.au/rsync
本站最新版本下载地址
http://www./softs/2149.html
PS:一定要去官方网站下载最新的版本,
因为2.6.1之前的版本有配置模块路径穿越漏洞。。。

解压缩后,编译很简单
./configure –prefix=/usr/local/rsync && make && make install

然后先来配置服务端吧

先来编辑服务端配置文件

#vi /etc/rsyncd.conf

#全局配置
uid = root
gid = root
hosts allow = 192.168.0.0/24
#hosts deny = 0.0.0.0/32

use chroot = no # 不使用chroot
max connections = 10 # 最大连接数为10
#motd file = /etc/rsyncd.motd #欢迎信息文件名称和存放位置(此文件没有,可以自行添加)
pid file = /var/run/rsyncd.pid #指定rsync的pid文件
lock file = /var/run/rsync.lock #指定支持max connections参数的锁文件,默认值是/var/run/rsyncd.lock
log file = /var/log/rsyncd.log #指定rsync的日志文件,而不将日志发送给syslog

#下面就是每个模块的配置了
[rsync_module_name1] # 这里是认证的模块名,在client端需要指定
path = /rsync_path/dir1 # 需要做镜像的目录
comment = rsync files
ignore errors # 可以忽略一些无关的IO错误
read only = yes # 只读
list = no # 不允许列文件
auth users = rsync_user # 认证的用户名,如果没有这行,则表明是匿名,多个用户用,分隔
secrets file = /etc/rsyncd.pas # 认证文件名
#pid file = /var/run/rsyncd.pid
#log file = /var/log/rsyncd.log
#lock file = /var/run/rsync.lock

[rsync_module_name2]
……

其中,个人认为,没项配置都可以既在全局配置,也可以在模块内部配置,其中如果模块内部如果有与全局相同的配置,
则模块内部的配置覆盖全局的配置。

然后编辑你上面指定的认证文件,我这里是: /etc/rsyncd.pas

#vi /etc/rsyncd.pas
格式为: username:password
rsync_user:rsyncofpass

安全起见,更改认证文件属性
#chmod 0600 /etc/rsyncd.pas

ok,现在启动下试试看吧。

#/usr/local/rsync/bin/rsync –daemon
你也可以指定rsync运行的端口
#/usr/local/rsync/bin/rsync –daemon –port=873

如果要在启动时把服务起来,有几种不同的方法,比如:

加入inetd.conf
编辑/etc/services,加入rsync 873/tcp,指定rsync的服务端口是873
编辑/etc/inetd.conf,加入rsync stream tcp nowait root /bin/rsync rsync –daemon

加入rc.local

在各种操作系统中,rc文件存放位置不尽相同,可以修改使系统启动时rsync –daemon加载进去。

我这里是直接加入 /etc/rc.local
/usr/local/rsync/bin/rsync –daemon –port=873
873就是rsync的默认端口号。

记得配置防火墙,允许你rsync端口的tcp和udp协议。
873:tcp 873:udp

下面开始配置客户端

下面这个命令行中-vzrtopg里的v是verbose,
z是压缩传输,
r是recursive,
topg都是保持文件原有属性如属主、时间的参数。
u是只同步已经更新的文件,避免没有更新的文件被重复更新一次,不过要注意两者机器的时钟的同步。
–progress是指显示出详细的进度情况,
–delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。
后面的rsync_user@192.168.0.2::rsync_module_name1中,之后的rsync_module_name1是模块名,也就是在/etc/rsyncd.conf中自定义的名称,rsync_user是指定模块中指定的可以同步的用户名。
最后的/tmp是备份到本地的目录名。
在这里面,还可以用-e ssh的参数建立起加密的连接。
可以用–password-file=/password/path/file来指定密码文件,这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读。

#/usr/local/rsync/bin/rsync -vzrtopg –progress –delete rsync_user@192.168.0.2::rsync_module_name1 /tmp/
Password:
或者你也可以制定password文件
由于需要系统crontab执行,所以这里采用读入密码文件的方式,
这个时候就成功了。

#vi /etc/rsyncd.pas
加入
rsync_user:rsyncofpass
注意,客户端的密码文件只需要密码,而不需要用户名!

rsyncofpass

更改文件权限:
#chmod 0600 /etc/rsyncd.pas

#/usr/local/rsync/bin/rsync -vzrtopgu –progress –delete –password-file=/etc/rsyncd.pas rsync_user@192.168.0.2::rsync_module_name1 /tmp/
不知道为什么,总是提示下面的认证错误
@ERROR: auth failed on module rsync_module_name1
rsync error: error starting client-server protocol (code 5) at main.c(1383) [receiver=2.6.9]
郁闷了,怎么都搞不定,还希望有经验的朋友给提供一下支持。。。

在今天在客户端密码文件只输入密码后,终于成功了

以后有时间再研究认证问题吧,时间紧,任务急,把验证先绕过。

    
[3]rsync 数据同步使用详解
    来源: 互联网  发布时间: 2013-12-24
rsync(d)服务端启动两种方式
1.daemon 2.xinetd inetd
启动后绑在 TCP/873 端口

% cat /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
}

配置 注意设置读写权限属主
% cat /etc/rsyncd.conf

motd file = /var/log/rsync/welcome.msg
pid file = /var/log/rsync/rsyncd.pid
lock file = /var/log/rsync/rsync.lock
log file = /var/log/rsync/rsyncd.log

[rsyncwww]
comment = rsync www
path = /var/www/
use chroot = no
max connections = 4
read only = false
list = true
uid = nobody
gid = nobody
auth users = wwwuser
secrets file = /etc/rsyncd.secrets
hosts allow = 1.1.1.1,2.2.2.2
hosts deny = 0.0.0.0/0
ignore errors = yes
transfer logging = yes
log format = "%a %f %l"
#log format = "%o %h [%a] %m (%u) %f %l"

[rsyncroot]
comment = rsync root
path = /
use chroot = no
max connections = 4
read only = true
#read only = false
list = true
uid = root
gid = root
auth users = rootuser
secrets file = /etc/rsyncd.secrets
hosts allow = 1.1.1.1,2.2.2.2
hosts deny = 0.0.0.0/0
ignore errors = yes
transfer logging = yes
log format = "%a %f %l"


rsyncd.secrets 一行一个用户 用户名:密码 格式

使用
rsync -auvPz --progress dir1 dir2
rsync -ztruvoglpD --progress dir1 dir2
rsync -ztruvoglpD --progress dir1/ dir2
rsync -ztruvoglpD --progress dir1/file1 dir2
如果不想包含某个目录/文件可以设置--exclude

远程使用
rsync 1.1.1.1:: 只列list
rsync user@1.1.1.1::
rsync user@1.1.1.1::module
rsync user@1.1.1.1::module/path
如果没有配置rsync server 可以通过 ssh 方式使用
rsync -e ssh -auvPz 1.1.1.1:/etc ./

同步时注意注意 / 最后的问题
不放/ 则目录名也包含mirror
放 / 则只有目录里面的东西mirror了

rsync -ztruvoglp --progress user@1.1.1.1::module/path ./
为了脚本调用方便 还可以调用 --password-file 同样注意属主权限
也可以设置环境变量RSYNC_PASSWORD=访问含用户认证的rsync

    
最新技术文章:
▪linux系统中的列出敏感用户的脚本代码
▪a10 config backup for aXAPI
▪一键备份gitolite服务器的Shell脚本
▪nagios 分发文件实现代码
▪阿里云云服务器Linux系统更新yum源Shell脚本
▪一个监控LINUX目录和文件变化的Shell脚本分享
▪Linux下实现SSH免密码登录和实现秘钥的管理、...
▪Shell正则表达式之grep、sed、awk实操笔记
▪3个备份系统文件并邮件发送的Shell脚本分享
▪CentOS 6.3下给PHP添加mssql扩展模块教程
▪监控网站是否可以正常打开的Shell脚本分享
▪shell脚本编程之if语句学习笔记
▪shell脚本编程之循环语句学习笔记
▪shell脚本编程之case语句学习笔记
▪Shell脚本实现的阳历转农历代码分享
▪Shell脚本实现复制文件到多台服务器的代码分...
▪Shell脚本实现批量下载网络图片代码分享
▪Shell脚本实现检测文件是否被修改过代码分享
▪Shell脚本数组用法小结
▪Shell脚本批量重命名文件后缀的3种实现
▪C语言实现的ls命令源码分享
▪Linux下查找后门程序 CentOS 查后门程序的shell脚...
▪Shell 函数参数
▪linux shell 自定义函数方法(定义、返回值、变...
▪Shell实现判断进程是否存在并重新启动脚本分...
▪Shell脚本break和continue命令简明教程
▪Shell脚本函数定义和函数参数
▪让代码整洁、过程清晰的BASH Shell编程技巧
▪shell常用重定向实例讲解
▪awk中RS、ORS、FS、OFS的区别和联系小结
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3