[root@Hammer home]# rpm -qa |grep rsync
rsync-2.6.9
如果没有,就去yum 或者apt-get install或者去官网服务器上下一个
vi /etc/xinetd.d/rsync
将disable=yes改为no
service rsync
{
}
2 配置rsync自动启动
[root@test etc]# chkconfig rsync on
[root@test etc]# chkconfig rsync --list
rsync
自动启动的方法还有
vim /etc/rc.d/rc.local
3 配置rsyncd.conf
[root@test etc]# vim rsyncd.conf
uid = root
gid = root
或者写成nobody
use chroot = no
max connections = 4
#最大连接数
strict modes = yes
port = 873
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
#上述3个文件如果不是在root帐户下用最好配置成可以修改的文件。或者给这3个文件修改所有者为其他帐户。我采用的第一种方法,如果用hadoop用户,我将这几个文件放在了/home/hadoop/rsync下
[hadoop]
path = /usr/local/hadoop-0.20.2/conf
comment = HADOOP
auth users = hadoop
uid = root
gid = root
secrets file = /etc/rsyncd.secrets
read only = no
list = no
[zookeeper]
path = /usr/zookeeper-3.3.5/conf
comment = ZOOKEEPER
auth users = hadoop
uid = root
gid = root
secrets file = /etc/rsyncd.secrets
read only = no
list = no
4 确保etc/services中rsync端口号正确
[root@namenode etc]# vim /etc/services
rsync
rsync
5 配置rsync密码(在上边的配置文件中已经写好路径)/etc/rsyncd.secrets(名字随便写,只要和上边配置文件里的一致即可),格式(一行一个用户)
[root@namenode etc]# vi /etc/rsyncd.secrets
root:hadoop
6 配置rsync密码文件权限
[root@namenode ]# chown root.root /etc/rsyncd.secrets
[root@namenode ]# chmod 400 /etc/rsyncd.secrets
7 启动配置
[root@test home]# /etc/init.d/xinetd restart
Stopping xinetd:
Starting xinetd:
8 如果xinetd没有的话,需要安装一下
[root@namenode]# yum -y install xinetd
9、启动rsync服务端(独立启动)
[root@namenode]# /usr/bin/rsync --daemon
10、检查rsync是否启动
[root@namenode]# lsof -i :873
COMMAND
xinetd
客户端配置
1 配置三个过程就可以了
[root@datanode1]# vi /etc/xinetd.d/rsync
# default: off
# description: The rsync server is a good addition to an ftp server, as it \
#
service rsync
{
}
1.1
[root@datanode1]# vi
hadoop
[root@ datanode1]# chown root:root /etc/rsyncd.secrets
[root@ datanode1]# chmod 600
1.2 从服务器上下载文件
[root@ datanode1]# rsync -avz --progress
--password-file=/etc/rsyncd.secret,的作用相当于免输入密码,如果没有这一句就会提示输入密码
delete参数是指 --delete 删除那些客户端没有中有而服务器端没有的文件,保持源、目标的一致性,但是不建议使用
[root@aj1 rsync-3.0.4]# rsync -avz
如果不是root帐户,而是rsync auth_usrs的帐户使用,要加sudo,因为rsyncd.secrets密码的文件的所有者是root,当然如果参数中不加入password,可以不加sudo。
-a 相当于 -rlptgoD 的集合
-u 等同于 –update,在目标文件比源文件新的情况下不更新
-v 显示同步的文件
–progress 显示文件同步时的百分比进度、传输速率
在其他的博客上还看到对于rsync自动同步的配置,比如定时为早上6:30同步
可以建一个启动脚本:方便每次系统启动时,服务自启动。
#!/bin/sh
rm -f /var/run/rsyncd.pid
/usr/local/bin/rsync --daemon --config=/etc/rsyncd.conf
netstst -ant
5、配置客户端(datanode1)的备份脚本,可以启用计划任务,定时备份。
#!/bin/sh
rsync -vzrtopg
/
上例是把namenode其hadoop下的所有内容备份到datanode1下的/usr/local/hadoop-0.20.2/conf
/目录下,如果没有其目录,会自动创建。
6、上传过程。恢复服务器一定要有写的权限。
#!/bin/sh
rsync -auvz
7、启动计划任务,定时每天早上6:30自动备份:
30 6 * * * hadoop /bin/sh /usr/local/rsync/bakcl.sh
或者设置为每半小时启动一次
crontab -e
*/30 * * * * hadoop /bin/sh /usr/local/rsync/bakcl.sh > /dev/null 2>&1
error总结:
@ERROR: chdir failed
rsync error: error starting client-server protocol (code 5) at main.c(1296) [receiver=2.6.8]
原因及解决办法:
这一般是在服务器端没有建立目录
或者是如果有开启SELinux只要执行一下命令
切记: rsyncd.secrets的权限必须为600
(注意:这个安全设置很重要,如果不这样做客户机连接服务器时会提示:
password file must not be other-accessible
rsync error: some files could not be transferred (code 23) at main.c(1298) [generator=2.6.8]
@ERROR: auth failed on module
rsync: connection unexpectedly closed (102 bytes read so far)
rsync error: error in rsync protocol data stream (code 12) at io.c(165)
服务器端日志将出现错误提示:
2005/08/23 06:32:01 [8388] secrets file must not be other-accessible (see strict modes option)
2005/08/23 06:32:01 [8388] continuing without secrets file
2005/08/23 06:32:01 [8388] auth failed on module
服务器和客户端的帐户密码都不可以有空格,否则会出现
@ERROR: auth failed on module
注意:
error3:
rsyncd.secrets的密码一定要和Rsync Server密码设定档案里的密码一样。如果不同(跟不是linux合法用户错误一样),将会出现如下的错误:
error4:
在client上遇到问题:
rsync -auzv --progress --password-file=/etc/rsync.pas root@192.168.133.128::backup /home/
rsync: could not open password file "/etc/rsync.pas": No such file or directory (2)
Password:
@ERROR: auth failed on module backup
rsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver=3.0.7]
遇到这个问题:client端没有设置/etc/rsync.pas这个文件,而在使用rsync命令的时候,加了这个参数--
password-file=/etc/rsync.pas
error5:
rsync -auzv --progress --password-file=/etc/rsync.pas root@192.168.133.128::backup /home/
@ERROR: chdir failed
rsync error: error starting client-server protocol (code 5) at main.c(1506) [Receiver=3.0.7]
遇到这个问题,是因为服务器端的/home/backup
error6:
rsync: write failed on "/home/backup2010/wensong": No space left on device (28)
rsync error: error in file IO (code 11) at receiver.c(302) [receiver=3.0.7]
rsync: connection unexpectedly closed (2721 bytes received so far) [generator]
rsync error: error in rsync protocol data stream (code 12) at io.c(601) [generator=3.0.7]
磁盘空间不够,所以无法操作。
可以通过df /home/backup2010 来查看可用空间和已用空间
error7:
1、权限问题
类似如下的提示:rsync: opendir "/kexue" (in dtsChannel) failed: Permission denied (13)注意查看同步的目录权限是否为755
2、time out
rsync: failed to connect to 203.100.192.66: Connection timed out (110)
rsync error: error in socket IO (code 10) at clientserver.c(124) [receiver=3.0.5]
检查服务器的端口netstat –tunlp,远程telnet测试。
3、服务未启动
rsync: failed to connect to 10.10.10.170: Connection refused (111)
rsync error: error in socket IO (code 10) at clientserver.c(124) [receiver=3.0.5]
启动服务:rsync --daemon --config=/etc/rsyncd.conf
4、磁盘空间满
rsync: recv_generator: mkdir "/teacherclubBackup/rsync……" failed: No space left on device (28)
*** Skipping any contents from this failed directory ***
5、Ctrl+C或者大量文件
rsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at rsync.c(544) [receiver=3.0.5]
rsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at rsync.c(544) [generator=3.0.5]
6、xnetid启动(linux)
rsync: read error: Connection reset by peer (104)
rsync error: error in rsync protocol data stream (code 12) at io.c(759) [receiver=3.0.5]
本文详细介绍了rsync服务端的配置步骤,包括安装软件包、配置xinetd服务、设置rsync自动启动等,并提供了客户端配置示例,涵盖密码文件设定、执行指令测试及计划任务设置。
771

被折叠的 条评论
为什么被折叠?



