rsync+inotify文件实时同步

rsync+inotify文件实时同步


(1)服务端环境搭建(需要同步的服务器)
  1.安装:
  wget https://download.samba.org/pub/rsync/src/rsync-3.0.6.tar.gz
  tar -zxvf rsync-3.0.6.tar.gz
  ./configure --prefix=/usr/local/rsync
  make
  make install
 2.配置
  配置rsyncd.conf 不存在就手动创建 touch /usr/local/rsync/rsyncd.conf

uid = root
gid = root
use chroot = yes
strict modes = false
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
####
log file = /var/log/rsyncd.log
transfer logging = true
log format= "%o [%a] %m (%u) %f %l %b %c"
##
reverse lookup = no
ignore errors = true
read only = false
hosts allow = 192.168.0.13
hosts deny = 0.0.0.0/0.0.0.0
strict modes = yes
list = false
max connections = 100
timeout = 1800
[www] //模块名
path = /data/www/  //需要同步的文件地址
auth users = www  //用户名
secrets file = /usr/local/rsync/rsyncd.secrets //密码文件

   配置rsyncd.secrets 不存在就手动创建 touch /usr/local/rsync/rsyncd.secrets(密码文件的权限应为600)

//格式:用户名:密码
 www:123456789

   配置rsyncd.motd 不存在就手动创建 touch /usr/local/rsync/rsyncd.motd 该步骤可以省略(内容无限制,自定义)

 3.启动rsync
  看看进程是否启动

ps aux | grep rsyncd

  启动命令:

//启动文件地址   --daemon --config=配置文件地址
/usr/local/rsync/bin/rsync --daemon --config=/usr/local/rsync/rsyncd.conf

  配置开机自启动

echo "/usr/local/rsync/bin/rsync --daemon --config=/usr/local/rsync/rsyncd.conf">> /etc/rc.local

(2)client客户端

  使用yum进行安装

yum -y install rsync

  设置密码,密码地址/etc/rsyncd.passwd 此处密码需要和服务端上边的 /usr/local/rsync/rsyncd.secrets 密码文件中的密码一致 (密码文件的权限应为600)

(3)同步文件

rsync -RaP 原服务器中需要同步的文件的地址  用户名@需要同步的服务器ip::模块名--password-file=密码文件地址
rsync -RaP /tmp/test.txt www@192.168.0.10::www --password-file=/etc/rsyncd.passwd

(4)配置inotify
 安装:
  wegt http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
  tar zxf inotify-tools-3.14.tar.gz
   cd inotify-tools-3.14
   ./configure --prefix=/usr/local/inotify-tools-3.14
   make&&make install
 设置同步的sh文件

	host=192.168.157.33     #目标服务器的ip(备份服务器)
	src=/etc        #在源服务器上所要监控的备份目录(此处可以自定义,但是要保证存在)
	des=etc_from_client     #自定义的模块名,需要与目标服务器上定义的同步名称一致
	password=/etc/rsync.password        #执行数据同步的密码文件
	user=JauLi          #执行数据同步的用户名
	inotifywait=/usr/bin/inotifywait
	
	$inotifywait -mrq --timefmt '%Y%m%d %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src |  while read files ; do
		    rsync -avzP --delete  --timeout=100 --password-file=${password} $src $ user@$ host::$des
		    
	 echo "${files} was rsynced" >>/tmp/rsync.log 2>&1
		done

 运行shell为文件

nohup bash /scripts/inotify.sh &

 查看是否有inotify进程

 ps -ef|grep inotify

 设置开机自启动

echo "nohup /bin/bash /scripts/inotify.sh &">> /etc/rc.local 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值