Rsync

也可以rsync -ap --delete root@192.168.1.24:/data/www/webapps/ /data/www/webapps/

输密码就能同步

比scp更强大的同步工具


安装rsync(本地默认有的)

vim /etc/rsyncd.conf


uid = nobody

gid = nobody

use chroot = no 是否允许切换到root目录

max connections = 30 最大连接数


pid file = /var/run/rsyncd.pid

lock file = /var/run/rsyncd.lock

log file = /var/log/rsyncd.log

transfer logging = yes

log format = %t %a %m %f %b

syslog facility = local3 类似debug,info,warning

timeout = 300

 

[www]

read only = yes

path = /usr/local/webapps 要共享的目录

comment = www 描述

auth users =test

secrets file = /etc/rsync.pas 密码文件

hosts allow = 192.168.0.11,192.168.0.12 允许哪个主机访问

 

[web]

read only = yes

path = /data/www/web

comment = web

auth users =test 客户端通过这个用户来访问

secrets file = /etc/rsync.pas

hosts allow = 192.168.1.11,192.168.0.0/24


rsync --demon 启动服务

ps -ef |grep rsync

netstat -tln 看873端口

vim /etc/rsync.pas

密码格式test:123456

chmod 700 /etc/rsync.pas


然后去客户端只需要设置同步密钥

vi /etc/rsync.pas

username:userpasswd

test:123456

chmod 600 /etc/rsync.pas


客户端执行

Rsync -aP --delete test@192.168.1.24::www /tmp    --password-file=/etc/rsync.pas

receiving file 表示从客户端接受文件

-delete完全一致  -a表示递归,并保持原文件所有文件属性


可以写成脚本

#!/bin/bash

#client rsync

#by yinxingyouyou 2017年5月10日 11:27:57

KEY_FILE="--pasword-file=/etc/rsync.pas"

SERVER="192.168.1.24"

if [ -z $1 -o -z $2 ];then

        echo -e "\033[32m------------------\033[0m"

        echo -e "\033[32mUssage:sh $0 module dest_dir,example sh $0 www /var/www/html\033[0m"

        exit 0

fi

rsync -aP --delete test@$SERVER::$1 $2


Rsync实时同步

inotify实时检查修改

安装inotiy-tools


#!/bin/sh  

src=/data/webapps/www  本地目录

des1=/home/webapps/ 客户端目录

ip=192.168.1.26 192.168.1.36客户端IP

src1=`echo $src |awk '{print $1}'`

src1=`echo $src |awk '{print $2}'`

inotifywait -mrq --timefmt '%d/%m/%y-%H:%M' --format '%T %w%f' -e modify,delete,create,attrib ${src} | while read file  

do

 for  i  in  $ip  

      do  

     rsync   -aP   --delete  $src1  root@$ip:$des

     rsync   -aP   --delete  $src2  root@$ip:$des

      done

done

nohup 脚本 & 后台运行