rsync 的安装和同步测试总结

来源:互联网 发布:大数据算法数学模型 编辑:程序博客网 时间:2024/04/29 17:14
rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了--remote sync。它的特性如下:
可以镜像保存整个目录树和文件系统。
可以很容易做到保持原来文件的权限、时间、软硬链接等等。
无须特殊权限即可安装。
优化的流程,文件传输效率高。
可以使用rcpssh等方式来传输文件,当然也可以通过直接的socket连接。
支持匿名传输,以方便进行网站镜象。
 
1)Centos默认会自带Rsync,为了方便使用,建议先卸载掉
rpm -qa |grep "rsync" 查看是否带有rpm安装的rsync
rpm -e rsync-x.x.x  如果有就卸载掉
2)下载安装Rsync最新稳定版
wget  http://rsync.samba.org/ftp/rsync/rsync-3.0.7.tar.gz
tar zxvf rsync-3.0.7.tar.gz 
     cd rsync-3.0.7
     ./configure --prefix=/usr/local/rsync
     make
     make install
说明一点,客户机和服务器都要安装rsync。客户机以客户端方式运行rsync,服务器端以服务器方式运行rsync,它监听873端口。
3) 设定 /etc/xinetd.d/rsync, 如下:
# default: off
# description: The rsync server is a good addition to am 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
}

然后执行chkconfig rsync on  使上述设定生效.
主要是要打开 rsync 這个 daemon, 一旦有 rsync client 要连接时, xinetd 会把它转介給 rsyncd (跑 port 873).
4)服务器端手动设置配置文件/etc/rsyncd.conf
vi /etc/rsyncd.conf
插入以下内容,如果之后调试遇到错误,建议把注释都去掉,以免造成不必要的错误
 
5)设置密码文件
在服务器端:
echo "tony:111111" >> /etc/rsync.pas 注意格式,以及用户名要与配置文件一致
安全起见,设置密码文件的拥有者为root,权限为只读
chown root:root rsync.pas
     chmod 600 /etc/rsync.pas
在客户端:
echo "111111" >> /etc/rsync.pas 注意格式,以及密码要与服务器端一致
安全起见,设置密码文件的拥有者为root,权限为只读
chown root:root rsync.pas
     chmod 600 /etc/rsync.pas
service xinetd restart,使配置生效,如果没有xinetd,需求再安装一下 yum install xinetd
6)客户端服务器都启动rsync
/usr/local/bin/rsync --daemon
或者xinetd进程启动 /etc/rc.d/init.d/xinetd reload
可以把该启动命令加入/etc/rc.local
在服务器端验证启动是否成功:
netstat -na|grep 873
7)打开iptables防火墙:
vi /etc/sysconfig/iptables
加入-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 873 -j ACCEPT
service iptables restart
8)从客户端进行测试:
从服务器端取文件
/usr/local/rsync/bin/rsync  -vzrtopg --progress --delete tony@192.168.10.220::www /data0/htdocs/www --password-file=/etc/rsync.pas
 向SERVER端上传文件
  /usr/local/rsync/bin/rsync -vzrtopg --progress --password-file=/root/rsync.pas  /data0/htdocs/www
tony@192.168.10.220::www
9)如果有比较复杂的工作,利用一些常见的脚本语言可以有帮助。比如
vi /usr/local/bin/rsync.sh
#!/bin/sh
DATE=`date +%w`
/usr/local/rsync/bin/rsync  -vzrtopg --progress --delete tony@192.168.10.220::www /data0/htdocs/www --password-file=/etc/rsync.pas >
/var/log/rsync.$DATE
修改/etc/crontab做好定时
比如:
 echo “15      4       *       *       6       root    rsync.sh”>>/etc/crontab
10)测试过程可能遇到的问题:
安装好rsync后,执行/usr/local/rsync/bin/rsync --daemon启动rsync时报错:
rsync: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory
解决办法:在/etc/ld.so.conf中加一行/usr/local/lib,运行ldconfig。再运行/usr/local/rsync/bin/rsync --daemon,就可以了。报错的原因可能之前更新过iconv库.
 
原创粉丝点击