源码编译安装
scp /linux-soft/1/tools.tar.gz [email protected]:/root
将真机tools的tar包拷贝并传输到192.168.4.7虚拟机的root目录下
ls /root
查看root目录下是否有真机拷贝过来的tools.tar.gz包
tar -tf /root/tools.tar.gz
查看tools.tar.gz包的内容
tar -xf /root/tools.tar.gz -C /
释放tar包到 / 根目录下
tar -xf /tools/inotify-tools-3.13.tar.gz -C /usr/local #tar解包
释放tar包到/usr/local目录下(习惯)
yum -y install gcc make #安装开发工具gcc与make
安装开发工具gcc软件包和make软件包
rpm -q gcc make
查看开发工具软件包是否已安装
cd /usr/local/inotify-tools-3.13
切换/usr/local/inotify-tools-3.13源码配置文件目录(inotify-tools-3.13可提供文件/目录监控工具inotifywait)
./configure #配置
运行源码目录下configure脚本
./configure --help
查看configure脚本帮助
./configure --prefix=/opt/myrpm
运行脚本以后要指定安装到哪个目录下(-- prefix=安装目录,不会自动创建目录)
ls Makefile
列出当前目录下的子文件,查看有没有安装Makefile文件
make #编译
生成可执行的二进制程序文件(放在内存中)
make install #安装
编译安装,将编译好的文件复制安装到目录
- 步骤1:
安装开发工具
gcc与make,释放源代码至指定目录- 步骤2:
tar解包
,释放源代码至指定目录- 步骤3:./configure
配置
,指定安装目录/功能模块等选项- 步骤4:make
编译
,生成可执行的二进制程序文件- 步骤5:make install
安装
,将编译好的文件复制到安装目录
总结
编译安装inotify-tools软件包
- 释放inotify-tools-3.13.tar.gz源码包
- 配置 ./configure
- 编译make、安装make install
rsync 同步操作
rsync [选项...] 源目录 目标目录
- 同步与复制的差异
- 复制:完全拷贝源到目标
- 同步:增量拷贝,只传输变化过的数据
sync操作选项
选项 | 解析 |
---|---|
-n | 测试同步过程,不做实际修改 |
--delete | 删除目标文件夹内多余的文档 |
-a | 归档模式,相当于-rlptgoD |
-v | 显示详细操作信息 |
-z | 传输过程中启用压缩/解压 |
本地同步
mkdir /mydir /todir
创建两个目录
cp /etc/passwd /mydir
将/etc/passwd用户信息文件拷贝到/mydir目录下
touch /mydir/1.txt
在/mydir目录下创建个叫1.txt的文件
ls /mydir
查看/mydir目录里有没有创建的1.txt文件
rsync -av /mydir /todir
用rsync同步下数据(源数据没有加/,将同步整个文件夹)
ls /todir
查看/todir目录下是否同步成功
rsync -av /mydir/ /todir
用rsync同步数据(源数据有/,同步文件夹下的数,在源数据后面加上
/
斜杠代表当前目录
)
ls /todir
查看/todir目录是否同步成功
touch /mydir/2.txt
在源数据/mydir目录下创建个2.txt文件
rsync -av /mydir/ /todir
用rsync同步数据,/mydir是源数据,/todir是目标,
把源数据文件夹下的数据同步到目标文件夹下
ls /todir
查看下/todir目录是否同步成功
echo 123 > /mydir/1.txt
输出123到源数据下的1.txt文件里
rsync -av /mydir/ /todir
用rsync同步数据,/mydir是源数据,/todir是目标,
把源数据文件夹下的数据同步到目标文件夹下
ls /todir
查看/todir目录下的文件是否同步成功
rsync -av --delete /mydir/ /todir/
--delete
删除目标目录下多余的数据(文件或目录),源数据不变,用rsync同步数据
ls /mydir/
查看源数据/mydir目录是否发生改变
ls /todir/
查看目标/todir目录是否发生改变
touch /todir/a.txt
在目标目录里创建文件
ls /todir/
查看是否创建成功
rsync -av --delete /mydir/ /todir/
用rsync同步数据
ls /todir/
查看目标目录/todir是否同步数据发生变化
ls /mydir/
查看/mydir源数据目录是否发生变化
远程同步
- 与远程的 SSH目录保持同步
- 下行:rsync [...] user@host:远程目录 本地目录
下载
(将另一台虚拟机的数据同步到本地) - 上行:rsync [...] 本地目录 user@host:远程目录
上传
(将本地的数据同步到另一台虚拟机)
- 虚拟机A的/mydir目录的内容与虚拟机B的/opt进行同步
rsync -av --delete /mydir/ [email protected]:/opt #虚拟机A
将本地的/mydir源数据共享给4.207主机的/opt目录下进行同步数据
ls /opt/ #虚拟机B
查看虚拟机B是否同步成功
实时数据同步
- 虚拟机A的/mydir/目录的内容与虚拟机B的/opt进行同步
- 实现ssh无密码验证(公钥与私钥)
ssh-keygen #虚拟机A
生成密钥
ls /root/.ssh/ #虚拟机A
id_rsa
(私钥)
id_rsa.pub
(公钥)
known_hosts
(记录曾经远程管理过的机器)
查看.ssh里生成的公钥和私钥
ssh-copy-id [email protected] #虚拟机B
将公钥传递给虚拟机B
rsync -av --delete /mydir/ [email protected]:/opt
将本地的/mydir源数据共享给4.207主机的/opt目录下进行同步数据
inotifywait基本用法
inotifywait [选项] 目标文件夹
常用命令选项
选项 | 解析
---|---
-m | 持续监控(捕获一个事件后不退出)
-r | 递归监控、包括子目录及文件
-q | 减少屏幕输出信息
-e | 指定监视的 modify、move、create、delete、attrib 等
书写shell脚本(了解)
- 脚本:可以运行一个文件,实现某种功能
- 中文:新建用户zhangsan shell: useradd zhangsan
- 死循环:while循环
while 条件
do
重复执行的事情
done
vim /etc/rsync.sh
在/etc目录下新建个rsync.sh以.sh为结尾的文件并且写入内容
while /opt/myrpm/bin/inotifywait -rqq /mydir/
do
rsync -a --delete /mydir/ [email protected]:/opt
done
在rsync文件里写入while循环,条件为
监控数据的更改
,重复执行的事情为同步数据
,只要一同步数据监控数据就会监听
chmod a+x /etc/rsync.sh
赋予执行权限
/etc/rsync.sh &
运行脚本程序,将程序放入后台
jobs -l
查看后台进程并显示PID
kill 17707
停止脚本
数据库服务基础
- 数据库:存放数据的仓库
- 在数据库系统中,有很多的数据库,在每一个库中有很多的表格
常见的关系型 数据库管理系统
微软 | SQL Server |
---|---|
IBM | DB2 |
甲骨文 | Oracle、MySQL |
社区开源版 | MariaDB |
部署MariaDB 数据库系统
yum -y install mariadb-server
安装MariaDB软件包
systemctl restart mariadb
启用mariadb服务
MariaDB基本使用
- Linux系统的管理指令不能使用
- 所有的数据库系统指令都必须以 ; 结尾
- 数据库系统的指令大部分不支持tab补全
mysql
进入数据库系统
create database nsd01;
创建nsd01数据库
show databases;
查看所有数据库
drop database nsd01;
删除数据库nsd01
show databases;
查看所有数据库
exit;
退出数据库系统
mysql
进入数据库系统
use mysql;
切换到mysql数据库
show tables;
查看当前库中所有表格
show databases;
查看所有数据库
use test;
切换到test数据库
exit;
退出数据库系统
为数据库系统管理员设置密码
- mysqladmin [-u用户名] [-p[旧密码]] password '新密码'
- 数据库系统管理员:对于数据库系统有最高权限,名字为root,能够登陆数据系统的用户信息有mysql库中user表进行储存
- Linux系统管理员: 对于Linux系统有最高权限,名字为root,能够登陆Linux系统的用户信息/etc/passwd进行储存
mysqladmin -u root password '123'
指定root用设置密码为123
mysql -u root -p
交互式进行登录
mysql -u root -p456
非交互式进行登录
mysqladmin -u root -p123 password '456'
已知旧密码修改新密码
mysql -u root -p456
非交互式进行登录
mysql -u root -p456
进入数据库系统
create database nsd01;
创建nsd01数据库
show databases;
查看所有数据库
exit;
退出数据库系统
传递备份好的数据文件users.sql到虚拟机A中
- 点击真机root选择其他位置,输入连接到服务器ftp地址
172.96.8.78
进入2104把users.sql拖动到真机的root下
ls /root
查看root下是否有users.sql文件
scp /root/users.sql [email protected]:/root
把users.sql文件以root的身份拷贝到4.7虚拟机的root下
恢复数据到数据库
mysql -u root -p456 nsd01 < /root/users.sql
把users.sql文件恢复到mysql的nsd01仓库
mysql -u root -p456
非交互式进行登录
MariaDB [(none)]> use nsd01;
切换到数据库nsd2104
MariaDB [nsd01]> show tables;
查看当前库有哪些表格
+-------------------+
| Tables_in_nsd01 |
+-------------------+
| base |
| location |
+-------------------+
表格操作
- 增(insert) 删(delete) 改(update) 查(select)
–表字段、表记录
编号 姓名 住址
1 Dc 东村
2 Tc 西村
查(select)
- 格式: select 表字段,表字段,…… from 库名.表名;
select * from base;
查看base所有表字段内容
select * from location;
查看location所有表字段内容
use test;
切换到test仓库
select * from nsd01.base;
在另外一个仓库查看base表格里的所有表字段内容加上指定要查看的仓库
use nsd01;
切换到nsd01仓库
select id,name from base;
查看指定的表字段
select * from base where password='456';
查看指定的密码为456
select * from base where id='4';
查看指定的id为4
select * from base where id='4' and password='123';
查看指定的id为4并且查看指定的密码为456
select * from base where id='4' or password='123';
查看指定的id为4或查看指定的密码为456
增(insert)
- insert 表名 values (‘值’,‘值’,‘值’);
MariaDB [nsd01]> insert base values('10','dc','789');
添加id为10,名字为dc,密码为789
MariaDB [nsd01]> insert base values('11','tcc','369');
添加id为10,名字为dc,密码为789
MariaDB [nsd01]> select * from base ;
查看base所有表字段内容
改(update)
- update 表名 set 表字段=‘新值’ where 表字段=’值’;
select * from base ;
查看base所有表字段内容
update base set password='8888' where id='1';
修改base表格的password密码为8888和id为1,如果不指定id的话,会把所有的密码覆盖掉全部改为8
select * from base ;
查看base所有表字段内容
update base set password='9999' where id='2';
修改base表格的password密码为9999和id为2,如果不指定id的话,会把所有的密码覆盖掉全部改为9
select * from base ;
查看base所有表字段内容
删(delete)
delete from base where id='4' ;
删除base表格里指定的id为4
select * from base ;
查看base所有表字段内容
delete from base where id='3' ;
删除base表格里指定的id为3
select * from base ;
查看base所有表字段内容
制作链接 (连接)文件(制作快捷方式)
- 格式:ln -s /路径/源数据 /路径/快捷方式的名称 #软链接
ln -s /etc/sysconfig/network-scripts/ /ns
把network-scripts改成ns,快捷方式为
ns
(软连接)
ls /
查看根目录下是否有ns快捷方式
ls -l /ns
查看链接文件的详细信息
touch /ns/haha.txt
在快捷方式里创建文件
touch /ns/maohehaozi.txt
在快捷方式里创建文件
touch /ns/shukehebeita.txt
在快捷方式里创建文件
ls /etc/sysconfig/network-scripts/
查看ns快捷方式的根文件目录里是否有在快捷方式里创建的文件
- 软连接优势:可以针对目录与文件制作快捷方式
- 软连接缺点:源数据消失,快捷方式失效
- 格式:ln /路径/源数据 /路径/快捷方式的名称 #硬链接
rm -rf /opt/*
删除/opt目录下的所有文件及目录
echo 123 > /opt/A.txt
输入123追加到A.txt并生成文件
ln -s /opt/A.txt /opt/B.txt
软链接
ln /opt/A.txt /opt/C.txt
硬链接
ls /opt/
查看opt目录下的文件及目录
cat /opt/B.txt
查看opt目录B文件里的内容
cat /opt/C.txt
查看opt目录C文件里的内容
rm -rf /opt/A.txt
删除主文件A
ls /opt/
列出opt目录下的子文件
cat /opt/B.txt
查看opt目录B文件里的内容,报错,因为主文件已经被删除
cat /opt/C.txt
查看opt目录C文件里的内容,保留内容
- 硬链接优势:源数据消失,快捷方式仍然有效
- 硬链接缺点:只能针对文件制作快捷方式,不支持支持跨分区
加上-s就是软链接,不加-s就是硬链接。