源服务器&目的服务器
是否安装rsync
# 大部分已经安装了,查看是否安装
> rpm -qa |grep rsync
源服务器
是否支持安装inotify
> ll /proc/sys/fs/inotify
安装inotify
> tar -xf inotify-tools-3.14.tar
> ./configure
> make
> mae install
配置密码文件
# 密码自定义,但要与目的服务器一直
> echo "123456">/etc/rsyncd.secrets
编写同步脚本
> vi stat2master.sh
#!/bin/sh
##################
# 实时同步文件目录 #
##################
# 目的服务器IP
host=*.*.*.*
# 源服务器目录
src=/data/grid/
# 配置模块名,自定义但要与目的服务器一直
des=stat
# 目的服务器用户名
user=oidd
# 启动监控及日志格式
/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src \
| while read files
do
/usr/bin/rsync -zrtopg --delete --progress --password-file=/etc/rsyncd.secrets $src $user@$host::$des
echo "${files} was rsynced" > /data02/grid/logs/rsyncd.log 2>&1
done
目的服务器
配置密码文件
> echo "oidd:123456" /etc/rsyncd.secrets
配置启动文件
> vi /etc/rsyncd.conf
uid = root
gid = root
use chroot = yes
#本机地址
address = *.*.*.*
#监听的端口
#port 873
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
#允许访问的客户机地址
hosts allow = *.*.*.*
#模块名称
[stat]
#项目路径
path = /sftp/stat
#项目描述
comment = Web File
#只读
read only = no
#同步时不再压缩的文件
dont compress = *.gz *.bz2 *.tgz *.zip *.rar *.z
#用户认证信息
auth users = hh
#用户认证信息存放的路径
secrets file = /etc/rsyncd.secrets
root用户启动
> /usr/bin/rsync --daemon --config=/etc/rsyncd.conf
/etc/rsyncd.conf必须是root:root属主
测试
源服务器
启动同步脚本
> ./stat2master.sh
同步目录下新建文件
> cd /data/grid/
> touch 1
目的服务器
查看远程目录
> ls
1