在it lab上看到一篇文章:《Linux rsync同步由手动到自动》http://linux.chinaitlab.com/administer/830847.html,依葫芦画瓢,做了个配置脚本

#!/bin/bash

#以下先配置服务器端

#检查是否已安装rsync

 

rsexist=`rpm -qa | grep rsync`

[ -z $rsexist ] && yum -y install rsync

#生成rsync的配置文件

cat <<'EOF' >rsynccd.conf

uid = nobody

gid = nobody

max connections = 200

timeout = 600

use chroot = no

read only = yes

pid file=/var/run/rsyncd.pid

host_allow =192.168.2.106        #客户端的IP地址写在这里

#syslog facility = local7

#log file=/var/log/rsyncd.log

#rsync config

#The 'standard' things

[rsync_gmmold]                    #定义同步的路径(客户端用这个关键字链接)

path = /home                 #需要同步的路径

comment = gmmold             #这个暂不知道

EOF

#启动服务 并加入开机启动

/usr/bin/rsync --daemon && echo "/usr/bin/rsync --daemon" >> /etc/rc.local

#检查rsync是否启动

rstart=`ps -ef | grep rsync | grep daemon`

[ -z $rstart ] && echo "rsync未启动"

#停止服务

kill –HUP `cat /var/run/rsyncd.pid `

#启动rsync服务

/usr/bin/rsync --daemon  --config=/etc/rsyncd/rsyncd.conf

 

客户端

#!/bin/bash

#以下先配置客户端

#检查是否已安装rsync

 

rsexist=`rpm -qa | grep rsync`

[ -z $rsexist ] && yum -y install rsync

 

#在tmp下建一个b.sh文件

cat << CLIRNTSH > /tmp/b.sh

#!/bin/bash

#把服务器的/home下的文件同步备份到/home/kaka/bak/

rsync -ave ssh root@192.168.2.104:/home/ /home/kaka/bak/  

CLIRNTSH

#每一分钟运行执行一次同步

echo "*  *   *   *   *   sh /tmp/b.sh" > /var/spool/cron/root

#允许rsync 服务器端口通过

iptables -A INPUT -p tcp -m state --state NEW  -m tcp --dport 873 -j ACCEPT

#启动rsync服务

/usr/bin/rsync --daemon  --config=/etc/rsyncd/rsyncd.conf