Centos 的inotify和rsync文件实时同步

今天要做两台服务器,作为cdn的源头,两台服务器内容文件要同步.

一台主Master:192.168.1.230

一台备份slave:192.168.1.236

操作系统为centos 5.6 x86_64 .默认安装了rsync

1. 我们只需要在Master上安inotify-tools这个工具

下载地址.

解压,按照INSTALL说明安装好.

2. 在Master上生成key免密码 ssh-keygen -t rsa  生成一对密钥~/.ssh/

3. 把Master主机~/.ssh/id_rsa.pub 拷贝为slave主机的~/.ssh/authorized_keys

4. 特别注意在master和slave上都要把.ssh的目录权限改为700 ,里面的文件改为600.不然还是会失败的.其实把sshd_conf中的StrictModes yes 改为no这个这样就不用改权限也能成功(不建议).

5. ssh 192.168.1.236 无需密码测试成功后.在master上

对于端口目标机器上ssh端口不是22的解决方法是: –e  'ssh –p 222'

 

  
  
  
  
  1. #/bin/bash 
  2. src_dir=/var/www/html/
  3. dst_ip="192.168.1.236" 
  4. dst_dir="/home/web/" 
  5. username="username" 
  6. /usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib  $src_dir \ 
  7. | while read files 
  8.     do 
  9.         for ip_addr in $dst_ip 
  10.         do 
  11.             /usr/bin/rsync -vzrtopg -e 'ssh -p 12324' --delete --progress $src_dir $username@$ip_addr:$dst_dir 
  12.             echo "${files} was rsynced" >>/tmp/rsync.log 2>&1 
  13.         done 
  14.     done

6.运行脚本,在目录中添加删除文件都可以看到输出内容的.

你可能感兴趣的:(centos,职场,rsync,inotify,休闲)