六:实战操作!!!!
本试验的测试环境(2台,一个服务端,一个客户端)
rsync服务端的ip:192.168.0.10
rsync客户端的ip:192.168.0.11
目标:把服务端(192.168.0.10)的/home/htdocs/www目录同步至客户端(192.168.1.11)/home/htdocs/www,保持客户端的www目录里面的东西和服务端的www目录完全一致
一、安装,服务端和客户端都装上同一版本的rsync
二、服务端(192.168.0.10)的配置
1、创建rsync的配置文档,rsync安装后,并没有创建rsyncd.conf文档,通常需要自己创建rsyncd.conf文档。rsync服务器的配置文件为/etc/rsyncd.conf,其控制认证、访问、日志记录等等。该文件是由一个或多个模块结构组成。一个模块定义以方括弧中的模块名开始,直到下一个模块定义开始或者文件结束,模块中包含格式为name = value的参数定义。每个模块其实就对应需要备份的一个目录树。

vi /etc/rsyncd.conf
里面填入如下内容:

uid = nobody
 gid = nobody
 use chroot = yes
 max connections = 4
 log file = /var/log/rsyncd.log
 pid file = /var/run/rsyncd.pid
 lock file = /var/run/rsync.lock
 hosts allow = 192.168.0.11
 hosts deny = 0.0.0.0/32

 [www]
 path = /home/htdocs/www
 read only = no
 exclude = data bbs
 list = false
 auth users = backup
 secrets file = /etc/rsyncd.pwd



2、创建密码文件

vi /etc/rsyncd.pwd
 backup:123456
 chmod 700 /etc/rsyncd.pwd



3、/etc/xinetd.d/rsync

# vi /etc/xinetd.d/rsync
 建立一个名为/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
 }



保存后,就可以运行rsync服务了。输入以下命令:

# /etc/rc.d/init.d/xinetd reload


这样rsync服务就在这台机器上(192.168.0.10)运行起来了,接下来就是如何来使用它了。

三,客户端配置

然后在客户端(192.168.0.11),在/root下建立以下脚本(目录任意):

#!/bin/bash
 /usr/bin/rsync -vzrtopg --progress --delete --password-file=/root/rsync.pwd backup@192.168.0.10::www /home/htdocs/www


将这个脚本保存为rsync.sh,并加上可执行属性:

# chmod 755 /root/rsync.sh


创建密码文件,客户端只需要密码,不需要用户名

vi /root/rsync.pwd
 123456
 chmod 700 /root/rsync.pwd #这里的权限必须和服务器端密码文件权限一致



然后,通过crontab设定,让这个脚本每30分钟运行一次。执行命令:

# crontab -e


输入以下一行:

0,30 * * * * /root/rsync.sh


保存退出,这样服务器B每个小时的0分和30分时都会自动运行一次rsync.sh

 

问题记录

测试环境安装好了,去生产环境部署,遇到几个问题

 

客户端同步报错

 

rsync @ERROR: chroot failed

原因:服务器端备份目录权限问题

解决方法:在服务器端备份目录设置对应权限

 

rsync @ERROR: chdir failed

原因:SELinux;

解决方法:服务器端运行 /usr/sbin/setsebool -P rsync_disable_trans on


六:实战操作!!!!
本试验的测试环境(2台,一个服务端,一个客户端)
rsync服务端的ip:192.168.0.10
rsync客户端的ip:192.168.0.11
目标:把服务端(192.168.0.10)的/home/htdocs/www目录同步至客户端(192.168.1.11)/home/htdocs/www,保持客户端的www目录里面的东西和服务端的www目录完全一致
一、安装,服务端和客户端都装上同一版本的rsync
二、服务端(192.168.0.10)的配置
1、创建rsync的配置文档,rsync安装后,并没有创建rsyncd.conf文档,通常需要自己创建rsyncd.conf文档。rsync服务器的配置文件为/etc/rsyncd.conf,其控制认证、访问、日志记录等等。该文件是由一个或多个模块结构组成。一个模块定义以方括弧中的模块名开始,直到下一个模块定义开始或者文件结束,模块中包含格式为name = value的参数定义。每个模块其实就对应需要备份的一个目录树。

vi /etc/rsyncd.conf


里面填入如下内容:

uid = nobody
 gid = nobody
 use chroot = yes
 max connections = 4
 log file = /var/log/rsyncd.log
 pid file = /var/run/rsyncd.pid
 lock file = /var/run/rsync.lock
 hosts allow = 192.168.0.11
 hosts deny = 0.0.0.0/32

 [www]
 path = /home/htdocs/www
 read only = no
 exclude = data bbs
 list = false
 auth users = backup
 secrets file = /etc/rsyncd.pwd



2、创建密码文件

vi /etc/rsyncd.pwd
 backup:123456
 chmod 700 /etc/rsyncd.pwd



3、/etc/xinetd.d/rsync

# vi /etc/xinetd.d/rsync


建立一个名为/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
 }



保存后,就可以运行rsync服务了。输入以下命令:

# /etc/rc.d/init.d/xinetd reload


这样rsync服务就在这台机器上(192.168.0.10)运行起来了,接下来就是如何来使用它了。

三,客户端配置

然后在客户端(192.168.0.11),在/root下建立以下脚本(目录任意):

#!/bin/bash
 /usr/bin/rsync -vzrtopg --progress --delete --password-file=/root/rsync.pwd backup@192.168.0.10::www /home/htdocs/www


将这个脚本保存为rsync.sh,并加上可执行属性:

# chmod 755 /root/rsync.sh



创建密码文件,客户端只需要密码,不需要用户名

vi /root/rsync.pwd
 123456
 chmod 700 /root/rsync.pwd #这里的权限必须和服务器端密码文件权限一致



然后,通过crontab设定,让这个脚本每30分钟运行一次。执行命令:

# crontab -e


输入以下一行:

0,30 * * * * /root/rsync.sh


保存退出,这样服务器B每个小时的0分和30分时都会自动运行一次rsync.sh

 

问题记录

测试环境安装好了,去生产环境部署,遇到几个问题

 

客户端同步报错

 

rsync @ERROR: chroot failed

原因:服务器端备份目录权限问题

解决方法:在服务器端备份目录设置对应权限

 

rsync @ERROR: chdir failed

原因:SELinux;

解决方法:服务器端运行 /usr/sbin/setsebool -P rsync_disable_trans on