rsync异机备份案例.docx
《rsync异机备份案例.docx》由会员分享,可在线阅读,更多相关《rsync异机备份案例.docx(10页珍藏版)》请在冰豆网上搜索。
rsync异机备份案例
第一步:
实验环境两台机器:
backup和web
在backup机器上,检查是否安装rsync,
[root@backup~]#rpm-qa|greprsync
独立运行rsync服务
最简单的独立运行rsync服务的方法是执行如下的命令:
#/usr/bin/rsync--daemon
您可以将上面的命令写入/etc/rc.local文件以便在每次启动服务器时运行rsync服务。
当然,您也可以写一个脚本在开机时自动启动rysnc服务。
配置文件rsyncd.conf默认在/etc目录下。
为了将所有与rsync服务相关的文件放在单独的目录下,可以执行如下命令:
#mkdir/etc/rsyncd
#touch/etc/rsyncd/rsyncd.conf
#ln-s/etc/rsyncd/rsyncd.conf/etc/rsyncd.conf
[root@backupbackup]#cat/etc/rsyncd/rsyncd.conf
#Minimalconfigurationfileforrsyncdaemon
#Seersync
(1)andrsyncd.conf(5)manpagesforhelp
#Thislineisrequiredbythe/etc/init.d/rsyncdscript
#GLOBALOPTIONS
uid=rsync
gid=rsync
usechroot=no
#limitaccesstoprivateLANs
hostsallow=172.16.0.0/255.255.0.0192.168.0.0/255.255.0.010.0.1.0/255.255.255.0
hostsdeny=*
maxconnections=5
pidfile=/var/run/rsyncd.pid
authusers=rsync_backup
secretsfile=/etc/rsync.password
#lockfile=/var/run/rsync.lock
motdfile=/etc/rsyncd/rsyncd.motd
#Thiswillgiveyouaseparatelogfile
logfile=/var/log/rsync.log
#Thiswilllogeveryfiletransferred-upto85,000+peruser,persync
transferlogging=yes
logformat=%t%a%m%f%b
syslogfacility=local3
timeout=300
[back]
path=/backup/
readonly=no
创建密码文件/etc/rsync.password
echo"rsync_backup:
oldboy">/etc/rsync.password
修改权限:
chmod600/etc/rsync.password
修改文件夹所有者:
首先保证rysnc用户存在,若不存在则建立rsync用户
useraddrsync
chownrsync.rsync/backup/
先关闭防火墙:
serviceiptablesstop
873端口打开
启动rsync
rsync--daemon--config=/etc/rsyncd.conf
在web机器上操作:
#mkdir/etc/rsyncd
#touch/etc/rsyncd/rsyncd.conf
#ln-s/etc/rsyncd/rsyncd.conf/etc/rsyncd.conf
在web服务器上进行操作,安装过程同上,配置文件如下:
echo"oldboy">/etc/rsync.password
chmod600/etc/rsync.password
[root@web~]#cat/etc/rsyncd/rsyncd.conf
#Minimalconfigurationfileforrsyncdaemon
#Seersync
(1)andrsyncd.conf(5)manpagesforhelp
#Thislineisrequiredbythe/etc/init.d/rsyncdscript
#GLOBALOPTIONS
uid=rsync
gid=rsync
usechroot=no
readonly=yes
#limitaccesstoprivateLANs
hostsallow=172.16.0.0/255.255.0.0192.168.0.0/255.255.0.010.0.1.0/255.255.255.0
hostsdeny=*
maxconnections=5
pidfile=/var/run/rsyncd.pid
authusers=rsync_backup
secretsfile=/etc/rsync.password
#lockfile=/var/run/rsync.lock
motdfile=/etc/rsyncd/rsyncd.motd
#Thiswillgiveyouaseparatelogfile
logfile=/var/log/rsync.log
#Thiswilllogeveryfiletransferred-upto85,000+peruser,persync
transferlogging=yes
logformat=%t%a%m%f%b
syslogfacility=local3
timeout=300
readonly=no
同步代码:
rsync-avz/backup/rsync_backup@192.168.119.133:
:
back--password-file=/etc/rsync.password
第二步:
1、备份三类文件,根据自己的实际情况,实验中打包一个文件夹即可,首先在本地测试,命令成功后再写入shell脚本中。
cd/&&tarzcvflog_$(date+%F).tar.gzvar/log/messages
cd/&&tarzcfbackup/log_$(date+%F).tar.gzvar/log/messages
rsync-avz/backup/rsync_backup@192.168.119.133:
:
backup--password-file=/etc/rsync.password
find/backup-typef-name“*.tar.gz”-mtime+7|xargsrm-f
获取ip地址字符串
IP=$(ifconfigeth0|grep"inetaddr"|awk'{print$2}'|awk-F:
'{print$2}')
Path=”/backup/$IP”
[!
-d$Path]&&mkdir$Path-p
tarzcf$Path/backup/log_$(date+%F).tar.gzvar/log/messages
rsync-avz/backup/rsync_backup@192.168.119.133:
:
backup--password-file=/etc/rsync.password
find/backup-typef-name“*.tar.gz”-mtime+7|xargsrm-f
常见错误解决:
我们都是通过错误日志查看
在rsyncd.log里面或.err文件里面,大家可以用记事本打开查看。
注意windows下面我们需要给SvcwRsync用户,管理同步目录的所有权限,基本上这样就可以了
问题一:
@ERROR:
chrootfailed
rsyncerror:
errorstartingclient-serverprotocol(code5)atmain.c(1522)[receiver=3.0.3]
原因:
服务器端的目录不存在或无权限,创建目录并修正权限可解决问题。
问题二:
@ERROR:
authfailedonmoduletee
rsyncerror:
errorstartingclient-serverprotocol(code5)atmain.c(1522)[receiver=3.0.3]
原因:
服务器端该模块(tee)需要验证用户名密码,但客户端没有提供正确的用户名密码,认证失败。
提供正确的用户名密码解决此问题。
问题三:
@ERROR:
Unknownmodule‘tee_nonexists'
rsyncerror:
errorstartingclient-serverprotocol(code5)atmain.c(1522)[receiver=3.0.3]
原因:
服务器不存在指定模块。
提供正确的模块名或在服务器端修改成你要的模块以解决问题。
问题1:
在client上遇到问题:
rsync-auzv--progress--password-file=/etc/rsync.pasroot@192.168.133.128:
:
backup/home/
rsync:
couldnotopenpasswordfile"/etc/rsync.pas":
Nosuchfileordirectory
(2)
Password:
@ERROR:
authfailedonmodulebackup
rsyncerror:
errorstartingclient-serverprotocol(code5)atmain.c(1506)[Receiver=3.0.7]
遇到这个问题:
client端没有设置/etc/rsync.pas这个文件,而在使用rsync命令的时候,加了这个参数--
password-file=/etc/rsync.pas
问题2:
rsync-auzv--progress--password-file=/etc/rsync.pasroot@192.168.133.128:
:
backup/home/
@ERROR:
authfailedonmodulebackup
rsyncerror:
errorstartingclient-serverprotocol(code5)atmain.c(1506)[Receiver=3.0.7]
遇到这个问题:
client端已经设置/etc/rsync.pas这个文件,里面也设置了密码111111,和服务器一致,但是
服务器段设置有错误,服务器端应该设置/etc/rsync.pas,里面内容root:
111111,这里登陆名不可缺少
问题3:
rsync-auzv--progress--password-file=/etc/rsync.pasroot@192.168.133.128:
:
backup/home/
@ERROR:
chdirfailed
rsyncerror:
errorstartingclient-serverprotocol(code5)atmain.c(1506)[Receiver=3.0.7]
遇到这个问题,是因为服务器端的/home/backup其中backup这个目录并没有设置,所以提示:
chdirfailed
问题4:
rsync:
writefailedon"/home/backup2010/wensong":
Nospaceleftondevice(28)
rsyncerror:
errorinfileIO(code11)atreceiver.c(302)[receiver=3.0.7]
rsync:
connectionunexpectedlyclosed(2721bytesreceivedsofar)[generator]
rsyncerror:
errorinrsyncprotocoldatastream(code12)atio.c(601)[generator=3.0.7]
磁盘空间不够,所以无法操作。
可以通过df/home/backup2010来查看可用空间和已用空间
问题5:
网络收集问题
1、权限问题
类似如下的提示:
rsync:
opendir"/kexue"(indtsChannel)failed:
Permissiondenied(13)注意查看同步的目录权限是否为755
2、timeout
rsync:
failedtoconnectto203.100.192.66:
Connectiontimedout(110)
rsyncerror:
errorinsocketIO(code10)atclientserver.c(124)[receiver=3.0.5]
检查服务器的端口netstat–tunlp,远程telnet测试。
可能因为客户端或者服务端的防火墙开启导致无法通信,可以设置规则放行rsync(873端口)或者直接关闭防火墙。
还有一种在同步过程中可能会提示没有权限(将同步目录加上SvcwRsync全部权限即可,更简单的方法就是将SvcwRsync设为管理员即可)
3、服务未启动
rsync:
failedtoconnectto10.10.10.170:
Connectionrefused(111)
rsyncerror:
errorinsocketIO(code10)atclientserver.c(124)[receiver=3.0.5]
启动服务:
rsync--daemon--config=/etc/rsyncd.conf
4、磁盘空间满
rsync:
recv_generator:
mkdir"/teacherclubBackup/rsync……"failed:
Nospaceleftondevice(28)
***Skippinganycontentsfromthisfaileddirectory***
5、Ctrl+C或者大量文件
rsyncerror:
receivedSIGINT,SIGTERM,orSIGHUP(code20)atrsync.c(544)[receiver=3.0.5]
rsyncerror:
receivedSIGINT,SIGTERM,orSIGHUP(code20)atrsync.c(544)[generator=3.0.5]
说明:
导致此问题多半是服务端服务没有被正常启动,到服务器上去查查服务是否有启动,然后查看下/var/run/rsync.pid文件是否存在,最干脆的方法是杀死已经启动了服务,然后再次启动服务或者让脚本加入系统启动服务级别然后shutdown-rnow服务器
6、xnetid启动
rsync:
readerror:
Connectionresetbypeer(104)
rsyncerror:
errorinrsyncprotocoldatastream(code12)atio.c(759)[receiver=3.0.5]
查看rsync日志
rsync:
unabletoopenconfigurationfile"/etc/rsyncd.conf":
Nosuchfileordirectory
xnetid查找的配置文件位置默认是/etc下,根据具体情况创建软链接。
例如:
ln-s/etc/rsyncd/rsyncd.conf/etc/rsyncd.conf
或者更改指定默认的配置文件路径,在/etc/xinetd.d/rsync配置文件中。
Rsyncconfigure:
配置一:
ignoreerrors
说明:
这个选项最好加上,否则再很多crontab的时候往往发生错误你也未可知,因为你不可能天天去看每时每刻去看log,不加上这个出现错误的几率相对会很高,因为任何大点的项目和系统,磁盘IO都是一个瓶颈
Rsyncerror:
错误一:
@ERROR:
authfailedonmodulexxxxx
rsync:
connectionunexpectedlyclosed(90bytesreadsofar)
rsyncerror:
errorinrsyncprotocoldatastream(code12)atio.c(150)
说明:
这是因为密码设置错了,无法登入成功,检查一下rsync.pwd,看客服是否匹配。
还有服务器端没启动rsync服务也会出现这种情况。
错误二:
passwordfilemustnotbeother-accessible
continuingwithoutpasswordfile
Password:
说明:
这是因为rsyncd.pwdrsyncd.sec的权限不对,应该设置为600。
如:
chmod600rsyncd.pwd
错误三:
@ERROR:
chrootfailed
rsync:
connectionunexpectedlyclosed(75bytesreadsofar)
rsyncerror:
errorinrsyncprotocoldatastream(code12)atio.c(150)
说明:
这是因为你在rsync.conf中设置的path路径不存在,要新建目录才能开启同步
错误四:
rsync:
failedtoconnectto218.107.243.2:
Noroutetohost(113)
rsyncerror:
errorinsocketIO(code10)atclientserver.c(104)[receiver=2.6.9]
说明:
防火墙问题导致,这个最好先彻底关闭防火墙,排错的基本法就是这样,无论是S还是C,还有ignoreerrors选项问题也会导致
错误五:
@ERROR:
accessdeniedtowwwfromunknown(192.168.1.123)
rsync:
connectionunexpectedlyclosed(0bytesreceivedsofar)[receiver]
rsyncerror:
errorinrsyncprotocoldatastream(code12)atio.c(359)
说明:
此问题很明显,是配置选项hostallow的问题,初学者喜欢一个允许段做成一个配置,然后模块又是同一个,致使导致
错误六:
rsyncerror:
receivedSIGINT,SIGTERM,orSIGHUP(code20)atrsync.c(244)[generator=2.6.9]
rsyncerror:
receivedSIGUSR1(code19)atmain.c(1182)[receiver=2.6.9]
说明:
导致此问题多半是服务端服务没有被正常启动,到服务器上去查查服务是否有启动,然后查看下/var/run/rsync.pid文件是否存在,最干脆的方法是杀死已经启动了服务,然后再次启动服务或者让脚本加入系统启动服务级别然后shutdown-rnow服务器
错误七:
rsync:
readerror:
Connectionresetbypeer(104)
rsyncerror:
errorinrsyncprotocoldatastream(code12)atio.c(604)[sender=2.6.9]
说明:
原数据目录里没有数据存在