linux学习之 ---源码编译安装 、rsync同步操作 、inotify实时同步
####################################################
u 关闭所有虚拟机的SELinux
[root@svr7 ~]# setenforce 0 #修改当前运行模式 [root@svr7 ~]# getenforce #查看当前运行模式 Permissive [root@svr7 ~]# vim /etc/selinux/config #永久修改 SELINUX=permissive
u 设置所有虚拟机防火墙
[root@svr7 ~]# systemctl stop firewalld [root@svr7 ~]# systemctl disable firewalld
将真机的tools.tar.gz 传递到虚拟机A的/root目录下
真机为Linux
]# ls /linux-soft/ ]# ls /linux-soft/1 ]# scp /linux-soft/1/tools.tar.gz root@192.168.4.7:/root/
一、源码编译安装
RPM软件包:rpm -ivh 或者 yum -y install
源码包----开发工具gcc与make----》可以执行的程序-----》运行安装
•主要优点
–获得软件的最新版,及时修复bug
–软件功能可按需选择/定制,有更多软件可供选择
–源码包适用各种平台
–……
步骤1:安装开发工具gcc与make
步骤2:tar解包,释放源代码至指定目录
步骤3:./configure 配置,指定安装目录/功能模块等选项
步骤4:make 编译,生成可执行的二进制程序文件
步骤5:make install 安装,将编译好的文件复制到安装目录
1.安装开发工具
[root@svr7 ~]# yum -y install gcc make [root@svr7 ~]# rpm -q gcc gcc-4.8.5-28.el7.x86_64 [root@svr7 ~]# rpm -q make make-3.82-23.el7.x86_64 [root@svr7 ~]#
2.进行解压缩
[root@svr7 ~]# tar -xf /root/tools.tar.gz -C / [root@svr7 ~]# ls /tools/ inotify-tools-3.13.tar.gz other
3.进行tar解包
[root@svr7 ~]# tar -xf /tools/inotify-tools-3.13.tar.gz -C /usr/local/ [root@svr7 ~]# ls /usr/local/ [root@svr7 ~]# cd /usr/local/inotify-tools-3.13/ [root@svr7 inotify-tools-3.13]# ls
4.运行configure脚本
作用1:检测当前系统是否安装gcc
作用2:指定安装位置与功能
]# cd /usr/local/inotify-tools-3.13/ ]# ./configure --help #查看帮助信息 ]# ./configure --prefix=/opt/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.
5.进行make编译,变成可以执行的程序(放在内存中)
[root@svr7 ~]# cd /usr/local/inotify-tools-3.13/ [root@svr7 inotify-tools-3.13]# make
6.进行make install安装
[root@svr7 ~]# cd /usr/local/inotify-tools-3.13/ [root@svr7 inotify-tools-3.13]# make install [root@svr7 inotify-tools-3.13]# ls /opt/ [root@svr7 inotify-tools-3.13]# ls /opt/myrpm/ bin include lib share [root@svr7 inotify-tools-3.13]# ls /opt/myrpm/bin/ inotifywait inotifywatch [root@svr7 inotify-tools-3.13]#
二、 数据同步
• 命令用法
rsync [选项...] 源目录 目标目录
• 同步与复制的差异
复制:完全拷贝源到目标
同步:增量拷贝,只传输变化过的数据
• rsync操作选项
-n:测试同步过程,不做实际修改
--delete:删除目标文件夹内多余的文档
-a:归档模式,相当于-rlptgoD
-v:显示详细操作信息
-z:传输过程中启用压缩/解压
本地同步
[root@svr7 ~]# mkdir /mydir /todir [root@svr7 ~]# cp /etc/passwd /mydir [root@svr7 ~]# touch /mydir/1.txt [root@svr7 ~]# ls /mydir
[root@svr7 ~]# rsync -av /mydir /todir #同步目录本身 [root@svr7 ~]# ls /todir
[root@svr7 ~]# rsync -av /mydir/ /todir #同步目录内容 [root@svr7 ~]# ls /todir
[root@svr7 ~]# touch /mydir/2.txt [root@svr7 ~]# rsync -av /mydir/ /todir #同步目录内容 [root@svr7 ~]# ls /todir [root@svr7 ~]# echo 123 > /mydir/1.txt [root@svr7 ~]# rsync -av /mydir/ /todir #同步目录内容 [root@svr7 ~]# ls /todir
[root@svr7 ~]# rsync -av --delete /mydir/ /todir/ [root@svr7 ~]# ls /mydir/ [root@svr7 ~]# ls /todir/
[root@svr7 ~]# touch /todir/aa.txt [root@svr7 ~]# ls /todir/ [root@svr7 ~]# rsync -av --delete /mydir/ /todir/ [root@svr7 ~]# ls /todir/ [root@svr7 ~]# ls /mydir/
远程同步
• 与远程的 SSH目录保持同步
下行:rsync [...] user@host:远程目录 本地目录
上行:rsync [...] 本地目录 user@host:远程目录
虚拟机A的/mydir目录的内容与虚拟机B的/opt进行同步
虚拟机A:
]# rsync -av --delete /mydir/ root@192.168.4.207:/opt ……..connecting (yes/no)? yes root@192.168.4.207's password: #输入密码
虚拟机B:
]# ls /opt/
三、实时数据同步
虚拟机A的/mydir/目录的内容与虚拟机B的/opt进行同步
u 实现ssh无密码验证(公钥 与 私钥)
虚拟机A
1.生成公钥与私钥
[root@svr7 ~]# ssh-keygen #一路回车 [root@svr7 ~]# ls /root/.ssh/
id_rsa(私钥) id_rsa.pub(公钥) known_hosts(记录曾经远程管理过的机器)
2.将虚拟机A将公钥传递给虚拟机B
]# ssh-copy-id root@192.168.4.207 ]# rsync -av --delete /mydir/ root@192.168.4.207:/opt
u 监控目录内容变化工具
将真机的tools.tar.gz传递数据到虚拟机A
[root@svr7 ~]# ls /root tools.tar.gz 下载 公共 音乐 [root@svr7 ~]#
源码编译安装步骤:
步骤一:安装开发工具
]# yum -y install make ]# yum -y install gcc ]# rpm -q gcc ]# rpm -q make
步骤二:进行tar解包
]# tar -xf /root/tools.tar.gz -C /usr/local/ ]# ls /usr/local/ ]# ls /usr/local/tools/ ]# tar -xf /usr/local/tools/inotify-tools-3.13.tar.gz -C /usr/local/ ]# ls /usr/local/
步骤三:运行configure脚本进行配置
作用1:检测系统是否安装gcc
作用2:可以指定安装位置及功能
]# cd /usr/local/inotify-tools-3.13/ ]# ./configure --prefix=/opt/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 /usr/local/inotify-tools-3.13/ ]# make
步骤五:make install进行安装
]# cd /usr/local/inotify-tools-3.13/ ]# make install ]# ls /opt/ ]# ls /opt/myrpm/ ]# ls /opt/myrpm/bin/
• 基本用法
inotifywait [选项] 目标文件夹
• 常用命令选项
-m,持续监控(捕获一个事件后不退出)
-r,递归监控、包括子目录及文件
-q,减少屏幕输出信息
-e,指定监视的 modify、move、create、delete、attrib 等事件类别
inotifywait
rsync -av --delete /mydir/ root@192.168.4.207:/opt
u 书写shell脚本(了解)
脚本:可以运行一个文件,实现某种功能
中文:新建用户zhangsan shell: useradd zhangsan
重复性:循环解决
死循环:while循环
while 条件
do
重复执行的事情
done
[root@svr7 /]# vim /etc/rsync.sh while /opt/myrpm/bin/inotifywait -rqq /mydir/
do
rsync -a --delete /mydir/ root@192.168.4.207:/opt
done
[root@svr7 /]# chmod a+x /etc/rsync.sh #赋予执行权限 [root@svr7 /]# /etc/rsync.sh & #运行脚本程序
[root@svr7 /]# jobs -l [1]+ 17707 运行中 /etc/rsync.sh & [root@svr7 /]# kill 17707 #停止脚本
本内容收集整理自互联网仅供技术交流之用,请勿用于任何侵犯他人权益的用途!本人不为此承担任何责任!本人与本文章所涉及的所有工具均无利益相关性,本文章为个人笔记性质不会从中获取利益,如存在侵权情况,请联系我,将会进行删除,谢谢