本文共 3865 字,大约阅读时间需要 12 分钟。
一、准备源码包
1.将真机tools.tar.gz传到虚拟机A scp基于ssh远程管理 scp /路径/源数据 root@对方IP地址:/路径/真机上:
scp /root/桌面/tools.tar.gz root@192.168.4.7:/root2.虚拟机A进行解包:
[root@svr7 /]# mkdir /nsd [root@svr7 /]# tar -xf /root/tools.tar.gz -C /nsd [root@svr7 /]# ls /nsd/ [root@svr7 /]# ls /nsd/tools inotify-tools-3.13.tar.gz other二、源码包简介
RPM包: rpm -ivh yum -y install
源码包----开发工具----->可以执行文件----->运行安装
灵活度较高,自定义较高,可以指定安装位置
– 获得软件的最新版,及时修复bug – 软件功能可按需选择/定制,有更多软件可供选择 – 源码包适用各种平台步骤一:安装开发工具gcc与make
[root@svr7 /]# yum -y install gcc make步骤二: tar解包,释放源代码至指定目录
[root@svr7 /]# tar -xf /nsd/tools/inotify-tools-3.13.tar.gz -C /opt/[root@svr7 /]# ls /opt/
[root@svr7 /]# ls /opt/inotify-tools-3.13
步骤三: ./configure 配置,指定安装目录/功能模块等选项
检测系统是否安装了gcc软件 --prefix=安装路径]# cd /opt/inotify-tools-3.13/
]# ./configure --prefix=/myrpm 当前路径下运行常见的错误提示,没有安装gcc
checking for gcc... no checking for cc... no checking for cl.exe... no configure: error: no acceptable C compiler found in $PATH See `config.log' for more details.步骤四: make 编译,生成可执行的二进制程序文件
]# cd /opt/inotify-tools-3.13/ ]# make步骤五: make install 安装,将编译好的文件复制到安装目
]# cd /opt/inotify-tools-3.13/ ]# make install ]# ls / ]# ls /myrpm/ bin include lib share ]# ls /myrpm/bin/ inotifywait inotifywatch• 命令用法
– rsync [选项...] 源目录 目标目录• 同步与复制的差异
– 复制:完全拷贝源到目标 – 同步:增量拷贝,只传输变化过的数据• rsync操作选项
– -n:测试同步过程,不做实际修改 – --delete:删除目标文件夹内多余的文档 – -a:归档模式,相当于-rlptgoD – -v:显示详细操作信息 – -z:传输过程中启用压缩/解压]# rsync -a /boot /todir //同步整个文件夹
]# rsync -a /boot/ /todir/ //只同步目录下的数据 [root@svr7 /]# mkdir /dir [root@svr7 /]# mkdir /abc [root@svr7 /]# cp /etc/passwd /etc/fstab /etc/hosts /dir/ [root@svr7 /]# ls /dir/ [root@svr7 /]# ls /abc/ [root@svr7 /]# rsync -av /dir /abc #同步目录本身 [root@svr7 /]# ls /abc/ [root@svr7 /]# rsync -av /dir/ /abc #同步目录下内容 [root@svr7 /]# ls /abc/ [root@svr7 /]# touch /dir/1.txt [root@svr7 /]# ls /dir/ [root@svr7 /]# rsync -av /dir/ /abc/ [root@svr7 /]# ls /abc/ [root@svr7 /]# echo haha > /dir/passwd [root@svr7 /]# rsync -av /dir/ /abc/ [root@svr7 /]# cat /abc/passwd[root@svr7 /]# rsync -av --delete /dir/ /abc/
[root@svr7 /]# ls /dir [root@svr7 /]# ls /abc[root@svr7 /]# touch /abc/a.txt
[root@svr7 /]# ls /abc [root@svr7 /]# rsync -av --delete /dir/ /abc/ [root@svr7 /]# ls /dir [root@svr7 /]# ls /abc[root@svr7 /]# touch /abc/{1..5}.txt
[root@svr7 /]# ls /abc [root@svr7 /]# rsync -av --delete /dir/ /abc/ [root@svr7 /]# ls /dir [root@svr7 /]# ls /abc• 与远程的 SSH目录保持同步
– 下行:rsync [...] user@host:远程目录 本地目录 – 上行:rsync [...] 本地目录 user@host:远程目录列出SSH服务端资源
rsync user@host:远程目录/
虚拟机A:
]# ls /dir/ ]# rsync -va --delete /dir/ root@192.168.4.207:/opt/虚拟机B:
]# ls /opt一、生成公钥与私钥,完成ssh无密码验证
1.生成公钥与私钥 [root@svr7 /]# ssh-keygen #一路回车 [root@svr7 /]# ls /root/.ssh id_rsa id_rsa.pub known_hosts [root@svr7 /]# 2.将公钥传递给对方 [root@svr7 /]# ssh-copy-id root@192.168.4.2073.测试
]# touch /dir/2.txt ]# rsync -va --delete /dir/ root@192.168.4.207:/opt/二、inotify软件监控目录内容变化
提供时间响应式的文件系统通知机制
• 基本用法
– inotifywait [选项] 目标文件夹• 常用命令选项
– -m,持续监控(捕获一个事件后不退出) – -r,递归监控、包括子目录及文件 – -q,减少屏幕输出信息 – -e,指定监视的 modify、move、create、delete、 attrib 等事件类别]# /myrpm/bin/inotifywait -mqr /dir/
]# rsync -va --delete /dir/ root@192.168.4.207:/opt/
inotify与rsync结合
循环:处理重复性的操作
for循环:适合有一定次数的循环操作
while适合死循环:次数无限while [条件]
do 重复性的操作 done[root@svr7 /]# vim /root/rsync.sh
#!/bin/bash a="/dir/" b="rsync -a --delete $a root@192.168.4.207:/opt/" while /myrpm/bin/inotifywait -rqq $a do $b done[root@svr7 /]# chmod +x /root/rsync.sh
[root@svr7 /]# /root/rsync.sh ###############################################或
]# vim /root/isync.sh
#!/bin/bash
FROM_DIR="/var/www/html/"
RSYNC_CMD=”rsync -az --delete $FROM_DIR root@192.168.4.207:/var/www/html"
while inotifywait -rqq -e modify,move,create,delete,attrib $FROM_DIR
do
$RSYNC_CMD
done &
]# chmod +x /root/isync.sh
实现从本地到远程的web目录推送
转载地址:http://zgiqi.baihongyu.com/