源码编译安装、rsync同步操作、inotyfy同步操作、数据库基础、ln软连接

源码编译安装

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

  • 同步与复制的差异
    1. 复制:完全拷贝源到目标
    2. 同步:增量拷贝,只传输变化过的数据
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目录保持同步
  1. 下行:rsync [...] user@host:远程目录 本地目录下载(将另一台虚拟机的数据同步到本地)
  2. 上行: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就是硬链接。

你可能感兴趣的:(源码编译安装、rsync同步操作、inotyfy同步操作、数据库基础、ln软连接)