补充centos7软件包的方式/编译安装源码包软件/企业案例/linux进程管理/企业管理进程系列命令(企业经验)--8820字详谈

cenros7软件包的安装方式

软件包分类安装方式优缺点
rpm包软件开发商编译打包,安装简单,快速软件版本可能偏低,安装路径是固定好的
源码包自己手动编译安装并且复杂软件爸爸随意选,可以定制安装路径
二进制包解压就可以使用不能进行修改源码,软件包大

什么是源码包?

开发人员编写好的程序源代码,并且没有将其编译为一个能正常使用的工具或软件。

为什么要进行源码包安装

部分软件官网提供源码包,需要自己编译并且安装;
部分软件在新版本有一些特性还没来得及制作rpm包时,或者软件包可以进行自行编译软件使用新的特性

比如:下面的编译参数介绍(添加了一些模块,可以使用源码安装)
在这里插入图片描述

源码包的优缺点

优点:

  1. 可以自行修改源代码
  2. 可以定制需要的相关功能
  3. 新版软件优先更新源码(python,go学开发做运维)

缺点:
4. 性对于yum安装软件会很复杂
5. 标准化实施困难,自动化运维复杂

源码包如何获取

常见的软件包都可以在官网获取源码包:apache(并发能力3000-5000),nginx(10000-30000),mysql等,阿里云,清华源

apache已经被国内淘汰了(不建议大家去学)
在这里插入图片描述
已经被nginx代替了

编译安装源码包软件

编译安装过程
在这里插入图片描述
上述安装是c语言开发的软件,很多系统服务软件大多都是c语言开发
c语言优势:运行速度快
缺点:难学,开发速度慢(互联网企业在逐渐大众消失)
python语言:开发效率高,用途广
缺点:解释语言,运行速度慢
go语言:开发效率高,用途在变广,编译速度快,主要是高并发场合,替代c语言

实践:安装nginx了解源码包编译过程

1.环境准备

[root@calms ~]# rpm -qa gcc
gcc-4.8.5-44.el7.x86_64
[root@calms ~]# rpm -qa make gcc wget
wget-1.14-18.el7_6.1.x86_64
gcc-4.8.5-44.el7.x86_64
make-3.82-24.el7.x86_64

如果已经装好了,忽略下面的步骤
yyum install gcc make wget -y(Development tools中含有gcc make)

2.下载源码包

去www.nginx官网找到对应下载的版本复制下载地址

[root@calms ~]# cd /usr/src

wget -q https://nginx.org/download/nginx-1.26.0.tar.gz(静默安装)
在这里插入图片描述

3.解压源码目录

[root@calms src]# tar xf nginx-1.26.0.tar.gz
[root@calms src]# cd nginx-1.26.0
[root@calms nginx-1.26.0]#

4.配置相关的选项,并且生成makefile

[root@calms nginx-1.26.0]# ./configure --prefix=/application/nginx-1.26.0
在这里插入图片描述

故障:在这里插入图片描述

这样直接安装不了,需要安装

[root@calms nginx-1.26.0]# yum install pcre-devel -y

如果还进行报错
安装yum install zlib-devel -y

这时候再进行编译:

./configure --prefix=/application/nginx-1.26.0

echo $?显示0表示正确
在这里插入图片描述

在这里插入图片描述

5.将makefile文件编译成可执行的二进制程序

cat Makefile(可以查看makefile文件内容)

make
make命令进行编译

6.将二进制文件拷贝至对应的文件

make install

7.启动,测试

netstat -lntup|grep nginx检查是否有(我这里是没有的)
在这里插入图片描述

补充:
这里最好用软连接做:
在这里插入图片描述

做软连接目的:我们以后进行访问只访问nginx,未来nginx软件包进行升级的时候(nginx-1.26.7)我们只需要ln -s 换成新的即可,对于编译软件的时候我们只使用nginx,要升级新的就直接链接到新的;工作中只使用ln /application/nginx即可!

/application/nginx-1.26.0/sbin/nginx
netstat -lntup|grep nginx
启动成功!
在这里插入图片描述

curl 127.0.0.1也可以终端查看,也可以在浏览器访问自己的ip

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

epel源里面有nginx的官方更新的

yum install nginx -y

在这里插入图片描述

. /application/nginx-1.26.0/sbin/nginx -s stop停止

特点:
安装复杂,特别慢,很容易报错

安装软件的时候,尽量找它的yum安装包,去官方去找它的镜像配置,如果官方的yum源符合不了要求。如果是大量的服务器将源码包进行定制化(定制为rpm包)然后把rpm包放置到私有仓库,然后用私有仓库作为源再通过yum进行安装
在这里插入图片描述

Linux进程管理

什么是进程?

计算机软件或代码被执行,运行与内存的时候,称之为进程,系统会为其分配内存资源,并且分配到pid,网路端口,运行用户及文件描述符。

进程及守护进程和程序的区别

进程:程序或者软件运行起来后的产物,放在内存中
守护进程:为提供服务持续运行,还具备普通进程的特点,ftp,mysql等都属于守护进程
程序:代码文件或应用软件文件永久存放在系统中,并且可以看到实体文件(放置在磁盘中),把程序及软件运行起来就是进程;持续的运行着,就是守护进程

进程运行原理

在这里插入图片描述

监控和管理进程(企业)

ps命令:查看进程

功能:列出执行ps命令那个时刻的进程快照(静态查看)
动态查看(top):

ps 【选项】

参数格式:Unix格式:一个 - 开头
bsd格式:没有- 开头
gnu 两个-开头

常用参数
-f :额外显示UID PPID c与STIME栏位

ps -ef 简易查看进程,过滤进程的命令
在这里插入图片描述
相当于windows管理器;

UID:进程被该UID所拥有
PID:进程的标识号
ppid:进程的父进程的标识号
c:cpu使用资源的百分比
STime:进程开始的时间
TTY:该进程是在那个终端机上面运作,若与终端机无关,显示?,另外tty1-tty6是本机上面的登入者进程,若为pts/0等,表示由网络接主机的进程
time:进程所用到的总和的cpu时间
cmd:正在执行的命令行

PID为1的初始进程,c7:systemd,c6:init

使用BSD语法格式显示每一个进程信息

ps aux
BSDd格式采纳数,使用a选项和x选项显示所有的进程,使用u选项显示进程的用户信息

在这里插入图片描述
ps auxx可以显示全路径

STAT:该进程被触发的时间;
TIME:该进程实际cpu运作时间
COMMAND:该进程的实际命令,【方括号】属于内核态的进程,没有 [ ]的是用户态进程

进程状态
运行:R 休眠:S D:不可中断睡眠 T:正在侦测或停止
Z:已经终止 +:前台进程
I:多线程进程 N:低优先级进程 <:高优先进程
s:进程领导者 L:已将页面锁定在内存中

AIX格式:ps -eo “%p %y %x %c”

语法说明,-e是显示所有的进程,-o可以自定义输出的字段,以逗号进行分隔,支持的字端
在这里插入图片描述
在这里插入图片描述
zabbix监控,每隔几分钟监控
在这里插入图片描述
pa aux --sort -vsz |head sort后面加上减号表示逆序排序

查看某一个进程在哪个cpu上运行:
在这里插入图片描述
这里可以和之前学习到的命令进行结合

重要的参数总结:
ps aux
a:显示与终端相关的所有的进程,包含每一个进程的完整路径
u显示进程的用户信息
x显示与终端无关的所有进程

-u 显示指定用户相关的进程信息

-e 显示所有的进程
-f 额外显示UID PPID C与STIME栏位

企业中如何使用?

查找占用cpu mem虚拟内存 更多的进程
分析进程的问题,解决问题,把资源降下来
如果发现没有异常,还无法进行降下来,就增加增加资源

维护服务器性能:CPU,内存,IO

pstree:显示进程状态树
用法
pstree 选项 【进程号、用户】
在这里插入图片描述
在后面会写linux启动流程的时候再详谈
pstree -a展示系统的子进程
在这里插入图片描述
在这里插入图片描述

psgrep:查找匹配条件的进程(了解即可)
用法:pgrep 【选项】

top:实时显示系统中各个进程的占用资源状况
top 【选项】
在这里插入图片描述
-U 指定用户的进程(搭建集群的时候可能会把程序跑在普通用户下)
指定pid查看进程
在这里插入图片描述

top的输出

第一行:任务队列信息,同uptime命令的执行结果;当前系统时间;系统运行对少天;2个用户登录系统;
后面三个数分别是1分钟,5分钟,15分钟的平均负载的情况。体现系统繁忙的重要简单的查看指标

top - 18:22:25 up 1:32, 2 users, load average: 0.00,

【平均负载load average】
在这里插入图片描述

第二行:task为任务(进程)
一共有有120个进程,其中运行的状态有1个,119在睡眠,stoped状态为0个;zombie状态(僵死)都有0个
在这里插入图片描述

Tasks: 120 total, 1 running, 119 sleeping, 0 stoppe

第三行,cpu状况信息
在这里插入图片描述
#模拟消耗负载,消耗cpu,消耗io工具
stress - tool to impose load on and stress test systems
example:

stress --cpu 8 --io 4 --vm 2 --vm-bytes 128M --timeout 10s

%Cpu(s): 0.0 us, 0.1 sy, 0.0 ni, 99.9 id, 0.0 wa,

第四行内存状态:
内存总结、可用内存(剩余内存)、已用内存、系统缓存和缓冲区占用内存空间
KiB Mem : 7989840 total, 7054432 free, 399116 used,

以上两行:cat/proc/meminfo或free -m获取

第五行:swap交换分区信息
交换分区总量 使用的交换区总量 空闲交换区总量 可用内存大小
KiB Swap: 1048572 total, 1048572 free, 0 used.

t

在这里插入图片描述
从第七行开始,是各进程(任务)状态监控
在这里插入图片描述

top必会的快捷键指令(笔试可能会问)

在这里插入图片描述

企业面试:输入top命令,想看服务器有几个cpu核心?

按1键

load average 平均负载
进程杀手:
1.kill 2.killall 3. pkill

kill 终止目标进程
-l 列出全部信号名称
-s指定要发送的信号

什么是信号?

kill命令发送给操作系统,让操作系统去执行的一个命令

常见的信号列表:
在这里插入图片描述
环境测试:

在这里插入图片描述

vsftpd( FTP服务),端口21端口,数据段端口20
在这里插入图片描述
默认不加参数关闭vsftpd
[root@calms ~]# pgrep vsftpd
7344
[root@calms ~]# kill 7344
[root@calms ~]# pgrep vsftpd

当用kill杀不死的时候,可以用kill -9 进程名(强制)

也可以这样杀进程:

kill -9 pgrep vsftpd(用反引号进行包含)

在这里插入图片描述

改配置文件不重启,直接生效
1 HUP 挂起信号 可以让进城重新配置,重新加载
kill -1 进程ID

生产经验:kill -0 pid是不发送关闭停止信号,但是会检查进程是否存在?
生产用途:检查进程是否存在,实际应用(mysql服务关闭的时候)
kill PID

补充:在shell脚本开发,关闭服务的时候,可以用kill -0
如果vsftpd存在则输出1否则为0
也可以判断进程是否存在

在这里插入图片描述

也可以判断进程是否存在:
在这里插入图片描述

企业经验:
强制杀,导致服务器不来
数据服务不能强杀mysql,oracle,mongodb(数据库,磁盘上有自己的文件系统)
非数据服务可以强杀nginx,vsftpd(数据在磁盘上)

已知端口去查服务:查看80端口是什么服务:

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

kill all通过名字杀进程

killall 进程名
在这里插入图片描述
可以多次执行直到看到后面出现没有发现即可

缺点:杀得很慢,不重复执行

pkill通过进程(完整名称)

-t 终端 杀死指定终端进程

-u 用户 杀死指定用户的进程
在这里插入图片描述
在这里插入图片描述
总结·:
pkill 进程名(一次杀死)
killall 进程名(多次)
-9强杀会引起服务起不来
-u用户
kill PID 默认不会引起服务器启动
kill -HUP PID 平滑重启(重新加载配置)
kill -0 PID(检查进程是否存在,mysql关闭的时候)
kill -9 PID(强杀,可能会引起服务起不来)
批量杀进程:
ps -ef|grep nginx|awk ’ {print $2}’ |sed -r ‘s#(.*)kill \1#g’|bash

这一篇先写到这里了,想要学习更多关注我的专栏!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/577761.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

什么是AIGC技术

AIGC技术&#xff0c;即人工智能全局优化控制技术&#xff0c;是一种将人工智能与全局优化控制方法相结合的技术。它的主要目标是通过智能化的方法来解决复杂系统的优化问题&#xff0c;提高系统的性能和效率。 AIGC技术的主要目标是利用人工智能算法和技术来实现对系统整体的…

第三篇:Python编程基础:掌握核心语法与开发技巧

Python编程基础&#xff1a;掌握核心语法与开发技巧 1 引言 在这个信息化迅速蔓延的世界中&#xff0c;Python语言如同钥匙一般开启了通往各种可能性的大门。无论你是数据科学家、网络工程师、机器学习专家&#xff0c;还是仅仅对自动化办公感兴趣的办公室人员&#xff0c;Pyt…

【Elasticsearch<二>✈️✈️】基本属性概念与MySQL数据库的不同之处

目录 &#x1f378;前言 &#x1f37b;一、Elasticsearch 基本属性 1.1 ES VS MySQL 1.2 ES 属性概念 1.3 ES 的增删改查 &#x1f37a;二、自动补全场景 2.1 场景举例 2.2 使用数据分词器 2.3 查询的流程 2.4 整个查询流程图 &#x1f379;章末 &#x1f378;前言 上次初步…

Zynq 7000 系列中的Interconnect(互联)简介

PS&#xff08;处理器子系统&#xff09;内部的互联结构包含了多个交换机&#xff0c;用于通过AXI点对点通道连接系统资源。这些通道负责在主机和从机客户端之间进行地址、数据和响应事务通信。该互联结构负责管理多个待处理的事务&#xff0c;并且为Arm CPU设计了低延迟路径&a…

UE4_动画基础_FootIK

角色由于胶囊体的阻挡&#xff0c;双脚与地面平行&#xff0c;不会与斜坡、台阶等贴合&#xff0c;有一条腿会处于悬空状态&#xff0c;通过双骨骼IK节点使一只脚太高&#xff0c;让后胶囊体下降&#xff0c;修正双脚的角度。这就是逆向运动IK的方法。 一、新建第三人称模板游戏…

OpenStack云计算(十四)——综合演练手动部署OpenStack,

本项目的项目实训可以完全参考教材配套讲解的详细步骤实施&#xff0c;总体来说实训工作量较大&#xff0c;可根据需要选做&#xff0c;重点观看配套的微课视频。 项目实训一 【实训题目】 搭建OpenStack云平台基础环境 【实训目的】 掌握OpenStack基础环境的安装和配置方…

CTFshow-PWN-栈溢出(pwn36)

存在后门函数&#xff0c;如何利用&#xff1f; 好好好&#xff0c;终于到了这种有后门函数的了 checksec 检查一下&#xff1a; 32 位程序&#xff0c;RELRO 保护部分开启 RWX: Has RWX segments 存在可读可写可执行的段 使用 ida32 看 main 函数 跟进 ctfshow 函数…

C++系列-命名空间

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” 命名空间 在C/C中&#xff0c;变量&#xff0c;函数和后面要学到的类都是大量存在的&#xff0c;这些变量&#xff0c;函数和类的名称都存在于全局作用域中&#xff0c;可能会导…

电机入门1

文章目录 122.12.22.3 33.13.23.33.4 1 2 2.1 电机板 驱动板电机分类 驱动器分类 转速 转向扭矩定时器 ADC 2.2 PID 自动控制 的核心闭环控制算是 PID的应用 2.3 无刷电机用的 可大大提高其控制效率 和控制精度 3 开发板的IO 电流太小了 20~25ma 电机要A 驱动板 信号放大没舵…

Linux防火墙相关命令以及ip白名单配置

Linux防火墙相关命令以及ip白名单配置 firewall防火墙基础命令查看防火墙的服务状态查看防火墙的状态服务的开启、关闭和重启查看防火墙规则端口的查询、开放和关闭重启防火墙 防火墙白名单配置部分参数介绍 firewall防火墙基础命令 查看防火墙的服务状态 systemctl status f…

乘数而上,创邻科技入选2024数商典型应用场景“乘数榜”

4月18日&#xff0c;由浙江省科学技术协会指导的2024未来数商大会在杭州成功举办。本次大会以“场景突破 乘数而上”为主题&#xff0c;国际国内数商共聚未来科技城学术交流中心&#xff0c;聚焦数据要素市场的制度创新、数据治理、场景应用与生态构建等话题展开研讨。 大会现…

C++入门基础(一)

目录 C关键字命名空间命名冲突例子域的概念理解命名空间定义例子1例子2例子3例子4例子5例子6例子7 C输出与输入输出输入 感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 &#x1f412;&#x1f412;&#x1f412; 个人主页 &#x1f978;&#x1f978;&#x…

汽车底盘域的学习笔记

前言&#xff1a;底盘域分为传统车型底盘域和新能源车型底盘域&#xff08;新能源系统又可以分为纯电和混动车型&#xff0c;有时间可以再研究一下&#xff09; 1&#xff1a;传统车型底盘域 细分的话可以分为四个子系统 传动系统 行驶系统 转向系统 制动系统 1.1传动系…

计算机体系结构:向量体系结构介绍

向量体系结构介绍 什么是向量&#xff1f; 在计算机体系结构&#xff0c;"向量"&#xff08;vector&#xff09;是指一个由多个相同类型且逻辑上相关的数据元素组成的有序集合。这些元素可以是整数、浮点数、布尔值或其他数据类型&#xff0c;它们在内存中连续存储…

SpringSecurity + Oauth2 + jwt实现单点登录

文章目录 前言一、springsecurity oauth2 redis方式的缺点二、oauth2认证的4种模式的选择三、认证服务器的编写 第一步、创建WebSecurity配置类第二步、创建jwt仓库配置类第三步、创建UserDetailsService类第四步、创建认证服务器配置类 四、测试认证服务器的功能 1.创建Login…

墨水屏技术在工业智能化领域的创新应用

墨水屏技术在工业智能化领域的创新应用 随着科技的快速发展&#xff0c;各种显示技术层出不穷&#xff0c;其中墨水屏作为一种独特的显示技术&#xff0c;逐渐在工业领域展现出其独特的优势和价值。墨水屏以其低功耗、高对比度和阅读舒适度高等特点&#xff0c;正成为工业应用…

uniapp-css多颜色渐变:左右+上下

案例展示 案例代码&#xff1a; 代码灵感&#xff1a;使用伪类进行处理 <view class"headBox"></view>.headBox {height: 200rpx;background: linear-gradient(to right, #D3D5F0, #F0DCF3, #F7F6FB, #DAE8F2, #E1D3EE);position: relative; }.headBox…

【C++】哈希思想

目录 哈希介绍&#xff1a; 一&#xff0c;位图 1-1&#xff0c;位图的认识 1-2&#xff0c;位图的简单实现 1-3&#xff0c;位图的应用 二&#xff0c;布隆过滤器 2-1&#xff0c;布隆过滤器的认识 2-2&#xff0c;布隆过滤器的简单实现 2-3&#xff0c;布隆过滤器的…

3d设计网站有哪些(1)?渲染100邀请码1a12

做3d设计需要各类资源&#xff0c;比如模型、材质、贴图等&#xff0c;如果这些都要自己做会非常麻烦&#xff0c;所幸现在有网站可以下载&#xff0c;有的免费有的收费&#xff0c;这篇文章我就先分享几个给有需要的朋友看看吧。 1、Pikbest Pikbest成立于2018年7月12日&…

万辰集团如何破局“增收不增利”的困境?

在波澜不惊的食用菌加工行业&#xff0c;万辰集团&#xff08;300972.SZ&#xff09;曾是一名平凡的参与者。2021年战略转型的号角吹响&#xff0c;万辰集团挥别了传统业务&#xff0c;转而投身于快速增长的量贩零食市场&#xff0c;并迅速扩张到成为这一领域的重要玩家。万辰的…
最新文章