博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
20.源码编译安装、rsync,inotify
阅读量:4229 次
发布时间:2019-05-26

本文共 3865 字,大约阅读时间需要 12 分钟。

源码编译安装

一、准备源码包 

1.将真机tools.tar.gz传到虚拟机A
 scp基于ssh远程管理
 scp  /路径/源数据       root@对方IP地址:/路径/

真机上:

 scp  /root/桌面/tools.tar.gz  root@192.168.4.7:/root

2.虚拟机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 [选项...] 源目录     目标目录

• 同步与复制的差异

– 复制:完全拷贝源到目标
– 同步:增量拷贝,只传输变化过的数据

• 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

远程同步rsync+SSH同步        

• 与远程的 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.207

 3.测试

]# 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目录推送

  1. 免密登陆
  2. 准备目录/var/www/html/
  3. 运行脚本
  4. 修改本地html目录下的内容
  5. 观察对应目录的实时变化

 

转载地址:http://zgiqi.baihongyu.com/

你可能感兴趣的文章
Smart Client Deployment with ClickOnce(TM): Deploying Windows Forms Applications with ClickOnce
查看>>
Agile Principles, Patterns, and Practices in C#
查看>>
Microsoft SQL Server 2005 New Features
查看>>
Understanding DB2 9 Security
查看>>
Beginning Expression Web
查看>>
Domino 7 Lotus Notes Application Development
查看>>
Alan Simpson's Windows Vista Bible
查看>>
Foundations of WPF: An Introduction to Windows Presentation Foundation
查看>>
Date on Database: Writings 2000-2006
查看>>
Using Microsoft Office 2007, Special Edition
查看>>
Telecommunications and Data Communications Handbook
查看>>
Networking with Microsoft Windows Vista: Your Guide to Easy and Secure Windows Vista Networking
查看>>
Web Application Vulnerabilities: Detect, Exploit, Prevent
查看>>
Silverlight 1.0 Unleashed
查看>>
Wireless Internet and Mobile Computing: Interoperability and Performance
查看>>
Wireless Mesh Networks: Architectures and Protocols
查看>>
Cross-Platform Development in C++: Building Mac OS X, Linux, and Windows Applications
查看>>
ZK: Ajax without the Javascript Framework
查看>>
Ruby Pocket Reference
查看>>
Cryptology Unlocked
查看>>