services-day03

源码编译安装

编译安装介绍

	编译安装是一种软件安装方式,通常用于开源软件或需要特定环境配置的应用程序。这种方式需要用户自己下载源代码,然后通过编译器将源代码转换为可执行文件。

环境准备:

#所有虚拟机设置SELinux运行模式
    [root@server ~]# getenforce
    Enforcing
    [root@server ~]# setenforce 0  #当前设置
    [root@server ~]# getenforce
    Permissive
    [root@server ~]# vim   /etc/selinux/config
    SELINUX=permissive
    
# 所有虚拟机设置防火墙(停止防火墙服务)
    [root@server ~]# yum  -y  remove  firewalld
    [root@server ~]# rpm   -q  firewalld

源码编译安装的优势

RPM软件包:rpm -ivh 或者 yum -y install
源码包----开发工具gcc与make----》可以执行的程序-----》运行安装

  • 主要优点:
    • 获得软件的最新版,及时修复bug
    • 软件功能可按需选择/定制,有更多软件可供选择
    • 源码包适用各种平台

准备编译环境

在这里插入图片描述

基本实现过程

步骤1:安装开发工具gcc与make,释放源代码至指定目录
步骤2:tar解包,释放源代码至指定目录
步骤3:./configure 配置,指定安装目录/功能模块等选项
步骤4:make 编译,生成可执行的二进制程序文件
步骤5:make install 安装,将编译好的文件复制到安装目录
在这里插入图片描述

真机tools.tar.gz 传递数据到虚拟机
真机为Linux:

]# ls /linux-soft/s1
]# scp /linux-soft/s1/tools.tar.gz root@192.168.88.240:/root

真机为windows:windterm进行上传tools.tar.gz
虚拟机A(以inotify-tools安装为例)

#1.安装开发工具
    [root@server ~]# yum  -y   install  gcc   make
    [root@server ~]# rpm   -q   gcc
    [root@server ~]# rpm   -q   make
    [root@server ~]# 

#2.进行解压缩
    [root@server ~]# tar  -xf  /root/tools.tar.gz  -C  /usr/local
    [root@server ~]# ls   /usr/local/tools
    inotify-tools-3.13.tar.gz 

#3.进行tar解包
    [root@server ~]# tar -xf /usr/local/tools/inotify-tools-3.13.tar.gz -C /usr/local/          
    [root@server ~]# ls    /usr/local/
    [root@server ~]# cd     /usr/local/inotify-tools-3.13/
    [root@server ~]# ls

#4.运行configure脚本
	#作用1:检测当前系统是否安装gcc
	#作用2:指定安装位置与功能
	#作用3:生成Makefile文件(制作程序的大纲,做菜的菜谱)
    [root@server ~]# cd   /usr/local/inotify-tools-3.13/
    [root@server ~]# ./configure  --help   #查看帮助信息,大概浏览一下
    [root@server ~]# ./configure  --prefix=/opt/myrpm #指定安装位置,此步骤不产生相应的目录  

#5.进行make编译,变成可以执行的程序(放在内存中)
    [root@server ~]# cd /usr/local/inotify-tools-3.13/
    [root@server inotify-tools-3.13]# make   

#6.进行make install安装
    [root@server ~]# cd /usr/local/inotify-tools-3.13/
    [root@server inotify-tools-3.13]# make   install 
    [root@server inotify-tools-3.13]# ls   /opt/
    [root@server inotify-tools-3.13]# ls   /opt/myrpm/
    [root@server inotify-tools-3.13]# ls   /opt/myrpm/bin/

常见的报错信息: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.

rsync本地同步

rsync基本使用

rsync概述

在这里插入图片描述

rsync同步操作

在这里插入图片描述在这里插入图片描述

同步控制

• 命令用法
rsync [选项…] 源目录 目标目录
• rsync操作选项
-n:测试同步过程,不做实际修改、
–delete:删除目标文件夹内多余的文档
-a:归档模式,相当于-rlptgoD
-v:显示详细操作信息
-X:保持acl策略不变

rsync远程同步

rsync+SSH同步

用法及服务端要求

• 与远程的 SSH目录保持同步:rsync user@host: 远程目录/

下行:rsync […] user@host:远程目录 本地目录

上行:rsync […] 本地目录 user@host:远程目录

服务端要求: 开启sshd服务,并提供授权的用户、密码

下行同步示例

在这里插入图片描述

上行同步示例

在这里插入图片描述

inotify实时同步

• 基本用法
inotifywait [选项] 目标文件夹
• 常用命令选项
-m,持续监控(捕获一个事件后不退出)
-r,递归监控、包括子目录及文件
-q,减少屏幕输出信息
-e,指定监视的 modify、move、create、delete、attrib 等事件类别

    inotifywait  监控目录内容变化
    rsync  -avX  --delete   /mydir/    root@192.168.88.2:/mnt

inotifywait监控示例:

#1)开启监控任务,置入后台
    [root@svr7 ~]# inotifywait  -mrq  -e  create,modify,move,attrib,delete /opt &
    [1] 55564

#2)测试/opt/目录下的新建、修改、改名、更改权限、删除文件等事件的响应消息
	[root@svr7 ~]# touch  /opt/a.txt
    /opt/ CREATE a.txt
    /opt/ ATTRIB a.txt

#观察修改文件内容时的监控信息:
    [root@svr7 ~]# echo  Hello  >  /opt/a.txt
    [root@svr7 ~]# /opt/ MODIFY a.txt
    /opt/ MODIFY a.txt
    
#观察将文件改名时的监控信息:
    [root@svr7 ~]# mv  /opt/a.txt  /opt/b.txt
    /opt/ MOVED_FROM a.txt
    /opt/ MOVED_TO b.txt
    
#观察修改文件权限时的监控信息:
    [root@svr7 ~]# chmod  600  /opt/b.txt
    /opt/ ATTRIB b.txt
    
#观察删除文件时的监控信息:
    [root@svr7 ~]# rm  -rf  /opt/b.txt 
    /opt/ DELETE b.txt

#3)停止监控任务
    [root@svr7 ~]# kill  -9  %1
    [1]+  已杀死          inotifywait -mr -e create,modify,move,attrib,delete /opt

虚拟机A的/mydir/目录的内容与虚拟机B的/mnt进行同步
实现ssh无密码验证(公钥与私钥)

#1.虚拟机A生成公钥与私钥
    [root@server ~]# ssh-keygen         #一路回车
    [root@server ~]# ls    /root/.ssh/
    id_rsa(私钥)   id_rsa.pub(公钥)    known_hosts(记录曾经远程管理过的机器)
   
#2.虚拟机A将公钥传递给虚拟机B
    [root@server ~]# ssh-copy-id     root@192.168.88.2
    [root@server ~]# rsync  -avX --delete   /mydir/    root@192.168.88.2:/mnt

数据库服务基础

构建数据库系统

什么是数据库

数据库:存放数据的仓库

在数据库系统中,有很多的数据库,在每一个库中有很多的表格
在这里插入图片描述

• 常见的关系型 数据库管理系统

微软的 SQL Server

IBM的 DB2

甲骨文的 Oracle、MySQL

社区开源版 MariaDB

部署mariadb数据库服务器

在这里插入图片描述 [root@server /]# yum -y install mariadb-server [root@server /]# systemctl restart mariadb

MariaDB基本使用

  1. Linux系统的管理指令不能使用
  2. 所有的数据库系统指令都必须以 ; 结尾
  3. 数据库系统的指令大部分不支持tab补全
   [root@server /]# mysql          #进入数据库系统
    > create  database  nsd01;     #创建nsd01数据库
    > show  databases;                #查看所有数据库
    > drop   database   nsd01;    #删除数据库nsd01
    > show  databases;                #查看所有数据库
    > exit;                          
    Bye
    [root@server ~]#
    [root@server /]# mysql     #进入数据库系统
    > use    mysql;              #切换到mysql数据库
    > show   tables;          #查看当前库中所有表格
    > show   databases;    #查看所有数据库
    > use  test;             #切换到test数据库
    > exit;   

恢复数据到数据库中

#真机传递数据到虚拟机
#真机为Linux:
    ]# ls  /linux-soft/s1
    ]# scp  /linux-soft/s1/users.sql   root@192.168.88.240:/root

恢复数据到数据库

    [root@server /]# mysql          #进入数据库系统
    > create  database  test;     #创建test数据库
    > show  databases;                #查看所有数据库
    > exit;                          
    Bye
    [root@server ~]#
    [root@server ~]# mysql   test   <   /root/users.sql
    [root@server ~]# mysql                 #进入数据库系统
    MariaDB [(none)]> use   test;        #切换到数据库test
    MariaDB [test]> show   tables;      #查看当前库有哪些表格
    +-------------------+      
    | Tables_in_test |
    +-------------------+
    | base              |
    | location          |
    +-------------------+

表格操作

查(select)
格式: select 表字段,表字段,…… from 库名.表名;

    [root@server /]# mysql   
    > use    test;
    > select   *   from   base;        #查看base所有表字段内容
    > select   *   from   location;    #查看location所有表字段内容
    > select   name,password   from   base;   
    > use  mysql;
    > select   *   from    test.base;    
    > use  test;
    > select   id,name    from     base;
    [root@server /]# mysql  
    > use    test;    #切换到test库
    查询密码为456的记录      
    > select  *   from    base  where   password='456';
    查看id编号为4的记录
    > select  *   from   base  where   id='4';
    查询id编号为4并且密码为123的记录
    > select  *  from  base  where  id='4'    and   password='123';
    查询id编号为4或者密码为123的记录
    > select  *  from  base   where  id='4'  or   password='123';

增(insert)
格式:insert 表名 values (‘值’,‘值’,‘值’);

    MariaDB [test]> insert   base  values('10','dc','789');
    MariaDB [test]> insert   base  values('11','tcc','369');
    MariaDB [test]> select   *   from base ;

改(update)
格式:update 表名 set 表字段=‘新值’ where 表字段=’值’;

  > select   *  from  base ;
    > update   base   set   password='8888'    where   id='1';
    > select  *  from   base ;   
    > update  base   set   password='9999'    where   id='2';
    > select  *  from   base ;   

删(delete)

    > use   test;
    > delete   from   base   where     id='4' ;
    > select   *   from   base ;
    > delete   from   base   where     id='3' ;
    > select   *   from   base ;

为数据库系统管理员设置密码

mysqladmin [-u用户名] [-p[旧密码]] password ‘新密码’

数据库系统管理员:对于数据库系统有最高权限,名字为root,能够登陆数据系统的用户信息,由mysql库中user表进行储存

Linux系统管理员: 对于Linux系统有最高权限,名字为root,能够登陆Linux系统的用户信息,/etc/passwd进行储存

    [root@server /]# mysqladmin -u   root   password   '456'
    [root@server /]# mysql  -u   root    -p    #交互式进行登录
    Enter password:
    [root@server /]# mysql   -u  root   -p456  #非交互式进行登录
    已知旧密码修改新密码       
    [root@server ~]# mysqladmin  -u   root  -p456   password   '123'
    [root@server ~]# mysql  -u  root    -p123     
  • 14
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值