一 . 源码编译安装
所需tools.tar.gz与users.sql
主要优点
–获得软件的最新版,及时修复bug
–软件功能可按需选择/定制,有更多软件可供选择
–源码包适用各种平台
步骤1:安装开发工具gcc与make,释放源代码至指定目录
步骤2:tar解包,释放源代码至指定目录
步骤3:./configure 配置,指定安装目录/功能模块等选项
步骤4:make 编译,生成可执行的二进制程序文件
步骤5:make install 安装,将编译好的文件复制到安装目录
关闭所有虚拟机的SELinux
[root@svr7 ~]# setenforce 0 #修改当前运行模式
[root@svr7 ~]# getenforce #查看当前运行模式
Permissive
[root@svr7 ~]# vim /etc/selinux/config #永久修改
SELINUX=permissive
设置所有虚拟机防火墙
[root@svr7 ~]# systemctl stop firewalld
[root@svr7 ~]# systemctl disable firewalld
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
进行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
3.运行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.
4.进行make编译,变成可以执行的程序(放在内存中)
[root@svr7 ~]# cd /usr/local/inotify-tools-3.13/
[root@svr7 inotify-tools-3.13]# make
5.进行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/
f.txt myrpm rh
[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:传输过程中启用压缩/解压
1.本地同步
[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/a.txt
[root@svr7 ~]# ls /todir/
[root@svr7 ~]# rsync -av --delete /mydir/ /todir/
[root@svr7 ~]# ls /todir/
[root@svr7 ~]# ls /mydir/
2.远程同步
与远程的 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/
1.txt haha passwd
3.实时数据同步
(实现ssh无密码验证)
虚拟机A
1.生成公钥与私钥
[root@svr7 ~]# ssh-keygen #一路回车
[root@svr7 ~]# ls /root/.ssh/
id_rsa(私钥) id_rsa.pub(公钥) known_hosts(记录曾经远程管理过的机器)
2.将公钥传递给虚拟机B(无密码部署)
]# ssh-copy-id root@192.168.4.207
]# rsync -av --delete /mydir/ root@192.168.4.207:/opt
3.书写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 #停止脚本
部署MariaDB 数据库系统
[root@svr7 /]# yum -y install mariadb-server
[root@svr7 /]# systemctl restart mariadb
MariaDB基本使用
- Linux系统的管理指令不能使用
- 所有的数据库系统指令都必须以 ; 结尾
- 数据库系统的指令大部分不支持tab补全
[root@svr7 /]# mysql #进入数据库系统
> create database nsd01; #创建nsd01数据库
> show databases; #查看所有数据库
> drop database nsd01; #删除数据库nsd01
> show databases; #查看所有数据库
> use mysql; #切换到mysql数据库
> show tables; #查看当前库中所有表格
> show databases; #查看所有数据库
> use test; #切换到test数据库
> exit;
为数据库系统管理员设置密码
[-u用户名] [-p[旧密码]] password '新密码'
数据库系统管理员:对于数据库系统有最高权限,名字为root,能够登陆数据系统的用户信息有mysql库中user表进行储存
Linux系统管理员: 对于Linux系统有最高权限,名字为root,能够登陆Linux系统的用户信息/etc/passwd进行储存
[root@svr7 /]# mysqladmin -u root password '456'
[root@svr7 /]# mysql -u root -p #交互式进行登录
Enter password:
[root@svr7 /]# mysql -u root -p456 #非交互式进行登录
已知旧密码修改新密码
]# mysqladmin -u root -p456 password '123'
]# mysql -u root -p123