rsync+inotify实现数据单向实时同步
主服务器用于即时与从服务器共享数据信息。
主IP地址:192.168.1.39(节点1)
从站的IP地址:192.168.1.40(node2)
一、配备从服务器
从服务器安装rsync,建立和装备rsync文档。
[root@node2~]#yuminstall-yrsync
hostsallow=192.168.1.39
hostsdeny=*
list=true
uid=root
GID=root
PIDfile=/var/run/rsyncd.PID
lockfile=/var/run/rsync.lock
logfile=/var/log/rsyncd在从属服务器上建立相同的文件名,并启动rsync来检查进程和被监控的端口号。
[root@node2 ~]# mkdir -p /data/node2
[root@node2 ~]# rsync --daemon
[root@node2 ~]# ps -ef | grep rsync| grep -v "grep"
root 1723 1 0 22:17 ? 00:00:00 rsync --daemon
[root@node2 ~]# netstat -anpt | grep rsync
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 1723/rsync
tcp 0 0 :::873 :::* LISTEN 1723/rsync
3.手动检测rsync的交互。
[root@node2 ~]# cd /data/node2/
[root@node2 node2]# echo "123456">a.txt
[root@node2 node2]# echo "abcd">b.txt
[root@node2 node2]# cat a.txt b.txt
123456
abcd
[root@node1 ~]# yum install -y rsync(在master上安裝rsync)
[root@node1 ~]# mkdir -p /data/node1
[root@node1 ~]# rsync -avzP 192.168.1.40::node2 /data/node1/
receiving incremental file list
./
a.txt
7 100% 6.84kB/s 0:00:00 (xfer#1, to-check=1/3)
b.txt
5 100% 0.12kB/s 0:00:00 (xfer#2, to-check=0/3)
sent 68 bytes received 180 bytes 23.62 bytes/sec
total size is 12 speedup is 0.05
[root@node1 ~]# cd /data/node1/
[root@node1 node1]# ls
a.txt b.txt
[root@node1 node1]# cat a.txt b.txt
123456
abcd
手动式检测同歩取得成功。
二、配备主网络服务器
编译器安装inotify。
[root@node1~]#mkdir-p/Taokey/
tools
[root@node1~]#CD/Taokey/tools/
[root@node1工具]#tar-zxfinotify-tools-3.14.tar.gz
[root@node1工具]#CDinotify-tools-3.14
[root@node1inotify-tools-3.14]#。/configure
[root@node1inotify-tools-3.14]#make
[root@node1notify-tools-3.14]#makeinstall
2.配备了inotify脚本。
#!/bin/bash
host=192.168.1.40
data_dir=/data/node1/
dst=node2
/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $data_dir | while read files
do
#rsync -avzP $host::$dst $data_dir
rsync -avzP --delete --progress $data_dir $host::$dst
echo "${files} was rsynced" >> /tmp/rsync.log 2>&1
done
[root@node1 inotify-tools-3.14]# chmod ux inotify_rsync.sh
[root@node1 inotify-tools-3.14]# bash inotify_rsync.sh &
[1] 4533
[root@node1 inotify-tools-3.14]# ps -ef | grep inoti | grep -v "grep"
root 4533 1880 0 18:02 pts/1 00:00:00 bash inotify_rsync.sh
root 4534 4533 0 18:02 pts/1 00:00:00 /usr/local/bin/inotifywait -mrq --timefmt %d/%m/%y %H:%M --format %T %w%f%e -e modify,delete,create,attrib /data/node1/
root 4535 4533 0 18:02 pts/1 00:00:00 bash inotify_rsync.sh
3.检查从主网络服务器到从服务器的数据信息。
[root@node1 ~]# cd /data/node1/
[root@node1 node1]# ls
a.txt b.txt
[root@node1 node1]# touch c.txt
[root@node1 node1]# sending incremental file list
./
c.txt
0 100% 0.00kB/s 0:00:00 (xfer#1, to-check=0/4)
sent 111 bytes received 30 bytes 13.43 bytes/sec
total size is 12 speedup is 0.09
sending incremental file list
sent 72 bytes received 8 bytes 7.62 bytes/sec
total size is 12 speedup is 0.15
[root@node1 node1]#
[root@node2 node2]# ls
a.txt b.txt c.txt
[root@node1 node1]# rm -rf a.txt
[root@node1 node1]# sending incremental file list
./
deleting a.txt
sent 61 bytes received 11 bytes 6.86 bytes/sec
total size is 5 speedup is 0.07
[root@node1 node1]#
[root@node2 node2]# ls
b.txt c.txt
实验取得成功!
评论列表(0条)