分类: LINUX
2009-08-12 21:56:57
rsync 是实现文件同步的好工具,麻雀虽小,但五脏六腑俱全,功能一点都不小,配合不同的参数可以实现很多功能,具体用途和参数可查看官方document。另外,rsync既可做服务端又可作客户端。
此时需要配置rsync的服务端和客户端
服务端配置
服务端可以使用两种形式来启动daemon
1.1 使用xinetd的rsync
修改/etc/xinetd.d/rsync 将disable = yes修改为disable = no,重启xinetd服务
#/etc/init.d/xinetd start
查看873端口是否已监听
netstat –antp|grep 873
1.2 使用源码安装,手动启动服务和进程
从官方网站下载源码rsync-3.0.6.tar.gz安装即可
启动daemon
#/usr/bin/rsync –daemon
查看873端口是否已监听
netstat –antp|grep 873
添加配置文件
rsync默认会读取/etc/rsyncd.conf这个文件作为它的配置文件,如无配置文件,rsync无法启动。
主要配置文件如下:
[root@RHEL5 base_domain]# cat /etc/rsyncd.conf
uid = 99
gid = 99
use chroot=no
max connections=20
lock file=/var/run/rsync.lock
log file=/var/log/rsyncd.log
motd file=/etc/rsyncd.motd
transfer logging = yes
log format = %t %a %m %f %b
strict modes=yes
[dev231]
path=/home/dev231/
ignore errors
read only=yes
auth users=webupload
secrets file=/etc/rsyncd.pass
[root@RHEL5 base_domain]# cat /etc/rsyncd.pass
webupload:webupload
[root@RHEL5 htdocs]# ls -l /etc/rsyncd.pass
-rw------- 1 root root 20 07-23 15:39 /etc/rsyncd.pass
记得此文件必须属主是root,权限是600,否则无法同步!
[root@RHL5 htdocs]# vi /etc/rsyncd.motd
+++++++++++++++++++++++++
+ MY Rsync 2009 +
+++++++++++++++++++++++++
客户端配置如下:
[root@RHEL5 htdocs]# cat rsync.sh
#!/bin/bash
rsync -uavz --delete --progress webupload@192.168.4.48::dev231 /home/htdocs/ --password-file=/home/htdocs/rsync.pass
[root@RHL5 htdocs]# cat rsync.pass
webupload
[root@RHL5 htdocs]# ls -l rsync.pass
-rw------- 1 root root 10 07-24 16:00 rsync.pass
记得此文件必须属主是root,权限是600,否则无法同步!
此种方式使用操作系统用户,通过ssh通道来同步文件,此时不需要配置rsync服务端,但是客户端不能使用--password-file参数,如果要想不需要手工输入密码而同步文件,则必须设
置两台server ssh无密码登录,客户端同步脚本如下:
#/bin/bash
rsync -uavz --delete --progress webupload@192.168.4.68:{true path} /home/htdocs/
附:设置ssh无密码登录的方式
node1 上执行
#ssh-keygen -t rsa (也可试试dsa,也是可以的)
[root@sz-newfortune-web .ssh]# ssh-keygen -t rsa --全部输入回车
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
98:7d:8a:c7:e0:3a:e9:36:8b:fd:45:6a:d2:ca:bb:14 root@sz-newfortune-web
#scp id_rsa.pub root@192.168.4.47:/root/.ssh/authorized_keys
node2上执行
#ssh-keygen -t rsa
#scp id_rsa.pub root@192.168.4.48:/root/.ssh/authorized_keys
分别执行:
#cd /root/.ssh
#cat id_rsa.pub >> authorized_keys
即可在两机器相互ssh而不用设置输入密码。