打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
linux+inotify+ssh实时同步详细过程
环境
Server:Linux 2.6.16.21-0.8-default(SUSE 10)
Client:Linux 2.6.9-89.ELsmp (RedHat 4)
SuSe 10--172.16.12.85
RedHat 4--172.16.12.87
软件:inotify-tools-3.13.tar.gz
目的
87的/home/ludy目录实时同步85的/home/ludy/rsync目录下的文件,在各自服务器上提前创建好对应目录
操作步骤
一、在85上创建ssh生成密钥
love:~ # ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 直接回车
Enter passphrase (empty for no passphrase): 直接回车
Enter same passphrase again: 直接回车
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
55:bc:66:9c:19:ac:bf:d1:4f:e3:bf:14:33:11:74:91
root@love
二、将密钥中的公钥传到87上
love:~ # cd .ssh/
love:~/.ssh # scp id_rsa.pub
root@172.16.12.87:~/.ssh/
The authenticity of host '172.16.12.87 (172.16.12.87)' can't be established.
RSA key fingerprint is ec:32:99:54:dd:b5:ec:cf:5c:99:dc:bf:3e:95:a7:bf.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.16.12.87' (RSA) to the list of known hosts.
root@172.16.12.87's
password:
id_rsa.pub 100% 391 0.4KB/s 00:00
三、在87上对生成的公钥进行如下修改
love:~ # ssh 172.16.12.87
root@172.16.12.87's
password:
Last login: Fri Aug 14 11:06:46 2009 from 172.16.12.85
[root@localhost ~]# cd .ssh/
[root@localhost .ssh]# mv id_rsa.pub authorized_keys
[root@localhost .ssh]# chown root:root authorized_keys
[root@localhost .ssh]# chmod 600 authorized_keys
四、测试从85使用ssh连到87,理论上是不需要输入密码的(一定要达到这样的效果)
love:~ # ssh 172.16.12.87
Last login: Fri Aug 14 11:36:25 2009 from 172.16.12.85
[root@localhost ~]#
五、在85上安装inotify
love:/home # tar -zxvf inotify-tools-3.13.tar.gz
love:/home # cd inotify-tools-3.13/
love:/home/inotify-tools-3.13 # ls
AUTHORS Makefile.in config.h configure.ac man
COPYING NEWS config.h.in depcomp missing
ChangeLog README config.log install-sh src
INSTALL aclocal.m4 config.status libinotifytools stamp-h1
Makefile autom4te.cache config.sub libtool
Makefile.am config.guess configure ltmain.sh
love:/home/inotify-tools-3.13 # make
love:/home/inotify-tools-3.13 # make install
六、创建inotify脚本
love:/home # more inosync.sh
#!/bin/sh
SRC=/home/ludy/rsync/
DST=root@172.16.12.87:/home/ludy
INWT=/usr/local/inotify/bin/inotifywait
RSYNC=/usr/bin/rsync

$INWT -mrq -e create,move,delete,modify $SRC | while read D E F;do
$RSYNC -aHqzt --delete $SRC $DST
done
love:/home # chmod +x inosync.sh
七、测试
love:/home # ./inosync.sh & 后台运行
[1] 12475
love:/home/ludy/rsync # touch aa bb cc dd
回到87上查看,发现也有出现该4个文件
[root@localhost ludy]# pwd
/home/ludy
[root@localhost ludy]# ls
aa bb cc dd
love:/home/ludy/rsync # rm -rf aa
love:/home/ludy/rsync # ls
bb cc dd
回到87上查看,发现也少了一个aa文件
[root@localhost ludy]# ls
bb cc dd
love:/home/ludy/rsync # vi aa

ddddddddddddd
ddddddddddddddd
~
love:/home/ludy/rsync # ls -l
total 4
-rw-r--r-- 1 root root 30 Aug 8 18:24 aa
-rw-r--r-- 1 root root 0 Aug 8 18:11 bb
-rw-r--r-- 1 root root 0 Aug 8 18:12 ee
回到87上查看发现有明显变化
[root@localhost ludy]# ls -l
total 4
-rw-r--r-- 1 root root 30 Aug 8 18:24 aa
-rw-r--r-- 1 root root 0 Aug 8 18:11 bb
-rw-r--r-- 1 root root 0 Aug 8 18:12 ee
八、注意
1、若直接去删除87上的bb cc dd后,85上的bb cc dd并不会自动删除
但当85上再新建一个aa时,发现这个时候87上又会多出aa bb cc dd 4个文件
2、若直接在87上对文件aa进行编辑,则在85上是不会有变化
[root@localhost ludy]# vi aa
ddddddddddddd
ddddddddddddddd
eeeeeeeeeeee
"aa" 3L, 43C written
[root@localhost ludy]# ls -l
total 4
-rw-r--r-- 1 root root 43 Aug 14 12:18 aa
-rw-r--r-- 1 root root 0 Aug 8 18:11 bb
-rw-r--r-- 1 root root 0 Aug 8 18:12 ee
love:/home/ludy/rsync # more aa
ddddddddddddd
ddddddddddddddd
love:/home/ludy/rsync # ls -l
total 4
-rw-r--r-- 1 root root 30 Aug 8 18:24 aa
-rw-r--r-- 1 root root 0 Aug 8 18:11 bb
-rw-r--r-- 1 root root 0 Aug 8 18:12 ee
3、这时若在85上再建立一个文件dd,则会发现87会再次进行与85的同步,原来修改过的文件又会还原
love:/home/ludy/rsync # touch dd
love:/home/ludy/rsync # ls -l
total 4
-rw-r--r-- 1 root root 30 Aug 8 18:24 aa
-rw-r--r-- 1 root root 0 Aug 8 18:11 bb
-rw-r--r-- 1 root root 0 Aug 8 18:28 dd
-rw-r--r-- 1 root root 0 Aug 8 18:12 ee
[root@localhost ludy]# ls -l
total 4

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
编程语言两台服务器文件实时同步如何在linux下实现的方案
通过unison+inotify-tools+ssh实现触发式远程实时双向同步
通过rsync inotify
远程访问及控制与Rsync远程同步
NFS 自动挂载 主备切换
Linux 中 rsync 备份数据使用实例
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服