Chinaunix首页 | 论坛 | 博客
  • 博客访问: 125197
  • 博文数量: 29
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 405
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-21 16:44
文章分类

全部博文(29)

文章存档

2009年(6)

2008年(23)

我的朋友

分类: LINUX

2009-08-12 21:56:57

 

rsync 是实现文件同步的好工具,麻雀虽小,但五脏六腑俱全,功能一点都不小,配合不同的参数可以实现很多功能,具体用途和参数可查看官方document。另外,rsync既可做服务端又可作客户端。

 

1 使用rsync自己的通道同步文件

此时需要配置rsync的服务端和客户端

 

服务端配置

 

服务端可以使用两种形式来启动daemon

1.1  使用xinetdrsync

修改/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,否则无法同步!

 

 

2通过ssh通道同步文件

此种方式使用操作系统用户,通过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而不用设置输入密码。

阅读(1447) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~