您的位置:首页 > 运维架构 > Shell

通过Shell脚本快速搭建高效Rsync服务

2012-11-04 22:48 471 查看
在我们的日常运维中,会经常遇到搭建rsync服务的需求,如:网站文件的同步(镜像或备份),patch的更新,各种异机备份等容灾备份等等。如 果把rsync服务的搭建写成脚本,那么就可以在执行脚本之后,有了基本的服务框架,只需针对具体的细节、安全要求做进一步改善,就OK,从而提高我们的 工作效率。

很多Linux系统,像RHEL和CentOS默认安装的是rsync 2.x版本的,而我推荐使用3.x版本,因为3.x在同步算法上有改进,更加有效率。

rsync官网:http://rsync.samba.org/

1)下载最新稳定版本rsync-3.0.8

[root@server ~]# cd tools

[root@server tools]# wget -c http://rsync.samba.org/ftp/rsync/src/rsync-3.0.8.tar.gz

2)编译安装rsync-3.0.8

[root@server tools]# tar xf rsync-3.0.8.tar.gz

[root@server tools]# cd rsync-3.0.8

[root@server rsync-3.0.8]# ./configure && make

3)编译安装后,会在rsync-3.0.8/目录中生成rsync二进制文件,把它拷贝到/usr/local/bin/下:

[root@server rsync-3.0.8]# \cp rsync /usr/local/bin

PS:服务端和客户端都要进行以上的安装操作,如果客户端和服务端都是一种类型的操作系统,可以编译安装一次,然后把rsync二进制命令分发到其他服务器的/usr/local/bin/下即可。

4)在服务端编辑Rsync服务搭建脚本(rsync_server_set.sh)

[root@server ]# cd shells/

[root@server shells]# vi rsync_server_set.sh

#!/bin/bash

#

# Script Name: rsync_server_set.sh

# Description: set rsync service quickly.

# +------------------ client side e.g. ------------------+

# $rsync -avz /root/admin/xxx.txt $address::mystation

# $rsync -avz $address::xxx_client/ /home/

# +------------------------------------------------------+

# Author: 300second - 51cto.com

# Date: 2012-10-18

#
rsync=/usr/local/bin/rsync

conf_file=/etc/rsyncd.conf

port=873

address=192.168.1.41

hosts_allow=192.168.1.0/24

rsync_dir='

[mystation]

path = /home/admin/

'

date=`date +%F" "%T`

cat > $conf_file <<EOF

pid file = /var/run/rsyncd.pid

port = $port

address = $address

uid = root

gid = root

use chroot = no

read only = no

hosts allow = $hosts_allow

#hosts deny = *

$rsync_dir

EOF

$rsync --daemon --config=$conf_file

cat >>/etc/rc.local <<EOF

# rsync daemon $date

$rsync --daemon --config=$conf_file

EOF

exit 0

5)在服务端直接运行该脚本就搭建好了Rsync服务

[root@server shells]# chmod 755 rsync_server_set.sh

[root@server shells]# ./rsync_server_set.sh 本文出自 “300second的运维小站” 博客
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: