【前言】
Rsync目前由rsync.samba.org维护,rsync 使用 "rsync 演算法", 使 local 和远端二部主机之间的档案快速达到资
料同步,由於它主要是传送"异动"部份,而非每次都整份传送所以同步速度相当地快,且Rsync可搭配rsh、ssh甚至使
用 daemon模式。 当一台主机跑 rsync daemon 模式,即为 rsync Server(也就是 Backup Server),备份主机会开启
一个 873port的服务通道,等待 rsync client连接,连接时 rsync Server 会检查密码是否正确若通过密码查核,便
开始进行档案传输.第一次连通会把整份档案传输一次,因此会比较慢,下一次就只传送资料之间异动的部份。
【作业环境】
FreeBSD 4-9 RELEASE (rsync server、client)
rsync-2.6.2
【安装及设定】
Rsync Server设定
Setp1.安装rsync
#cd /usr/ports/net/rsync //切换到安装路径
#make install clean //安装并清除安装过程中不必要的档案
Setp2.规划建立备份目录区
#mkdir /media/backup/web //自己建立一个备份目录(owner及group需配合web module设定)
Setp3.设定rsyncd.conf
#vi /usr/local/etc/rsyncd.conf //修改rsyncd.conf内容如下
###backup config### //注解
[web] //module name
comment = //说明
path = /media/backup/web //存放备份资料的目录
auth users = waylon //认证帐号(也就是等一下要设在rsyncd.secrets的帐号)
uid = root //以uid root来启动rsync server
gid = wheel //以gid wheel来启动rsync server
secrets file = /usr/local/etc/rsyncd.secrets //密码档存放路径
read only = no
dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz //不要对列出附档名之档案做压
缩,非必要,可以加入也可以不加入。
※若要同时有二个以上rsync client要备份到rsync server则依此module设定自行增加即可
※不要使用uid nobody、gid nogroup来启动rsync server,因为会读不到file。
※密码档存放路径、档案的名称可以任君喜好,爱放哪就放哪,只是自己要知道放在哪就好
※系统中不需有认证帐号这个user,也就是说系统里面不用adduser waylon这个user。
Setp4.建立rsyncd.secrets
#vi /usr/local/etc/rsyncd.secrets //建立rsyncd.secrets档,加入内容如下
waylon:abcdefgh //id:password(自行设定帐号、密码)
#chmod 600 rsyncd.secrets //权限改为600,不然别人会读取到密码
Setp5.修改rc.conf
# vi /etc/rc.conf增加以下内容rsyncd_enable="YES" //重开机会自动启动rsync
Setp6.启动rsync服务
#vi /usr/local/etc/rc.d/rsyncd.sh //修改rsync.sh
将预设值command_args="--daemon" 改为 command_args="-4 --daemon"
预设值是跑 IPv6改为 跑 IPv4
#/usr/local/etc/rc.d/rsyncd.sh start //启动rsync服务
#sockstat |grep rsync //确定rsync跑tcp4及打开873 port
出 现
root rsync 1201 4 tcp4 *:873
root rsync 1201 3 dgram syslogd[68]:3
Rsync Client设定
Setp1.安装rsync
#cd /usr/ports/net/rsync //切换到安装路径
#make install clean //安装并清除安装过程中不必要的档案
Setp2.建立rsyncd.secrets
#vi rsyncd.secrets //建立rsyncd.secrets内容如下(只需密码,不需帐号)
abcdefgh //pwd(自行设定密码,但需与rsync server端的相同)
#chmod 600 rsyncd.secrets //权限记得改为600,不然别人会读取到密码
Setp3.测试能否顺利同步资料
执行格式大致如下(或man rsync)以下将执行分为三段来讲解
Usage: rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST
#/usr/local/bin/rsync -CaP --delete --password-file=/usr/local/etc/rsyncd.secrets
/home waylon@192.168.168.19::web //执行此行指令测试能否顺利同步
项目(叁数) 说明
rsync [OPTION]
-a, --archive archive mode, equivalent to -rlptgoD 档案模式
-v, --verbose increase verbosity 观看过程
-z, --compress compress file data 压缩资料
-P equivalent to --partial -progress 显示程序进度%
-C
-c
-u
--delete delete files that don't exist on the sending side 当source端删除A文件则destination
端也把A文件删除保持二台机器资料的
一致性。
--password-file=FILE get password from FILE 指定本机rsyncd.secrets的位置
SRC [SRC]
/home 将本机目录/home备份到rsync server的备份
目录/media/home/backup/web
[USER@]HOST:DEST
waylon@192.168.168.19::web 以waylon身份登入到rsync server(192.168.168.19)
上"web" module
/home与/home/的异同
/home 将会把/home目录下所有档案包括/home这个目录名称一起搬到rsync sever端
/home/ 将会把/home目录下所有档案搬到rsync sever端,但「不」包括/home这个目录名称。
Setp3.加入CRONTAB排程
#crontab -e //编辑排程(每天晚上10点15分执行rsync.sh)
15 22 * * * /usr/local/bin/rsync -CaP --delete --password-file=/usr/local/etc/rsyncd.secrets
/home waylon@192.168.168.19::web
常见问题
出现:
rsync error: error in socket IO (code 10) at clientserver.c(93)
请检查帐号密码。
【叁考资料】 http://linux.tnc.edu.tw/techdoc/rsync.htm 使用 rsync (全自动网路备份法)
http://rsync.samba.org/ rsync官方网站
|