linux脚本:自动检测的bash脚本,用于检查linux的系统性能

news2024/11/17 11:59:24

目录

一、要求

二、脚本介绍

1、脚本内容

2、解释

3、使用方法:

(1)脚本文件

(2)赋予权限

(3)执行结果

三、相关命令介绍

1、top

(1)定义

(2)用途

2、free

(1)定义

(2)用途

3、df

(1)定义

(2)用途

4、iostat

(1)定义

(2)用途

5、uptime

(1)定义

(2)用途

6、ps

(1)定义

(2)用途


一、要求

        编写一个用于检查Linux系统性能的自动检测脚本,可以包括多个系统性能指标的监控。该脚本将检查CPU使用率、内存使用情况、磁盘空间、磁盘I/O(如果iostat可用)、系统负载以及正在运行的进程等关键指标。

二、脚本介绍

        脚本需要一些额外的工具(如sysstat包含iostat)预装在的系统上,或者可能需要手动安装它们。

1、脚本内容

#!/bin/bash

# 检查系统性能
echo "===== 系统性能检测 ====="

# CPU 使用率
echo "===== CPU 使用率 ====="
top -bn1 | grep "Cpu(s)" | sed "s/., \([0-9.]\)% id./\1/" | awk '{print 100 - $1"%"}'

# 内存使用情况
echo "===== 内存使用情况 ====="
free -h | grep Mem

# 磁盘空间
echo "===== 磁盘空间 ====="
df -hT | grep -vE '^Filesystem|tmpfs|cdrom'

# 磁盘I/O(如果iostat可用)
if command -v iostat &> /dev/null; then
    echo "===== 磁盘I/O ====="
    iostat -dx 2 1 | egrep "Device|sda|sdb"  ##假设你的主要磁盘是sda或sdb,根据实际情况调整
else
    echo "iostat命令未找到,请安装sysstat包"
fi

# 系统负载
echo "===== 系统负载 ====="
uptime

# 进程信息(CPU和内存占用最高的进程)
echo "===== 进程信息(CPU占用最高)====="
ps aux --sort=-%cpu | head -n 10

echo "===== 进程信息(内存占用最高)====="
ps aux --sort=-%mem | head -n 10

echo "===== 系统性能检测完成 ====="

        可以根据需要添加更多的检查项。

2、解释

        部分语句可以参考相关的linux的帮助,如下为补充说明:

- 脚本中的iostat命令部分使用了sda和sdb作为示例磁盘设备。应该根据的系统实际情况来调整这些值。如果的系统中有不同的磁盘设备,比如nvme0n1、xvda等,应该在iostat命令中相应地更改它们。

- 脚本中top命令的使用方式是为了快速获取CPU使用率的一个近似值,但它并不是最精确的方法。对于更精确的分析,可能需要编写更复杂的脚本或使用其他工具。

- 脚本中的free -h、df -hT等命令提供了易于阅读的输出格式(使用-h选项表示以人类可读的格式显示大小),但可以根据需要调整这些命令以获取更详细的输出。

- 脚本中的grep -vE '^Filesystem|tmpfs|cdrom'用于从df命令的输出中排除不需要的行(如文件系统类型、tmpfs文件系统和cdrom设备)。可能需要根据的具体需求调整这个排除模式。

3、使用方法:

(1)脚本文件

        将上述脚本保存为一个文件,例如system1_performance_check.sh。

(2)赋予权限

        赋予脚本执行权限:chmod +x system1_performance_check.sh。

(3)执行结果

        运行脚本使用如下命令:

        ./system1_performance_check.sh。

        结果如下所示:

      

三、相关命令介绍

1、top

(1)定义

        top命令用于实时显示系统中各个进程的资源占用状况,如CPU、内存等。它可以让你看到哪些进程正在运行,以及它们是如何影响系统性能的。

(2)用途

        主要用于系统监控,帮助系统管理员了解当前系统的运行状态,识别出消耗资源最多的进程。

2、free

(1)定义

        free命令用于显示系统当前的内存使用情况,包括物理内存、交换空间(swap)等。

(2)用途

        帮助用户和系统管理员了解当前系统的内存使用状况,包括空闲内存、已用内存、缓存等。

3、df

(1)定义

        df(disk free)命令用于显示磁盘分区上的可用空间。它会列出所有已挂载的文件系统的总空间、已用空间、可用空间以及挂载点等信息。

(2)用途

        主要用于磁盘空间管理,帮助用户和系统管理员了解磁盘的使用情况,避免磁盘空间耗尽。

4、iostat

(1)定义

        iostat命令用于监控系统输入输出设备和CPU的使用情况。它可以报告CPU统计信息和所有块设备(包括分区)的输入输出统计信息。

(2)用途

        帮助分析系统性能瓶颈,特别是与磁盘I/O相关的性能问题。

5、uptime

(1)定义

        uptime命令用于显示系统已经运行了多长时间,以及在这段时间内系统的平均负载。

(2)用途

快速查看系统的稳定性和负载情况,帮助判断系统是否处于健康状态。

6、ps

(1)定义

        ps(process status)命令用于显示当前终端或系统中的进程状态。它可以显示进程的快照,包括进程ID、运行时间、使用的CPU和内存资源等信息。

(2)用途

        帮助用户和系统管理员查看当前系统中正在运行的进程,以及它们的状态和资源使用情况。通过结合不同的选项和参数,ps命令可以提供非常详细的进程信息。


文章正下方可以看到我的联系方式:鼠标“点击” 下面的 “威迪斯特-就是video system 微信名片”字样,就会出现我的二维码,欢迎沟通探讨。


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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Springboot 整合Elasticsearch

1 java操作ES方式 1.1 操作ES 9300端口(TCP) 但开发中不在9300进行操作 ES集群节点通信使用的也是9300端口如果通过9300操作ES,需要与ES建立长连接 可通过引入spring-data-elasticsearch:transport-api.jar不在9300操作原因:1.springboot版本不同&…

Hive多维分析函数——With cube、Grouping sets、With rollup

有些指标涉及【多维度】的聚合,大的汇总维度,小的明细维度,需要精细化的下钻。 grouping sets: 多维度组合,组合维度自定义;with cube: 多维度组合,程序自由组合,组合为…

学习react-Provider解决props需要层层传递问题

1.组件数据传递问题 数据传递:A(顶级组件)-》B组件(子组件)、C组件(孙子组件)…很多组件 这样得通过props层层传递到下面的组件 还有另一种解决方法,即通过全局对象来解决,使用Prov…

Android 10.0 framework默认沉浸式状态栏功能实现

1. 前言 在10.0的系统rom定制化开发中,在实现状态栏的某些定制化开发中,在某些产品需要实现沉浸式状态栏,就是需要app 能全屏显示同样也能显示状态栏,接下来就来分析下相关的功能实现 如图: 2.framework默认沉浸式状态栏功能实现的核心类 frameworks\base\core\java\andro…

SpringCloud+FastAPI 打造AI微服务

Nacos注册微服务 注册接口服务(java)和图像ocr服务(python) springcloud业务层 fastapi推理层 postman调用接口层,接口层再通过openfegin,调用注册在nacos上推理层的微服务 参考文章SpringCloudPython 混合微服务,如何打造AI分布式…

Python数值计算(13)

1. 数学知识 虽然在给定了N个点以后,通过这个点的最小幂多项式是确定的,但是表达方式可不止一种,例如前面提到的系数方式,根方式,还有插值的Lagrange形式等。这里介绍另外一种表达方式: 显然这个式子最高次…

p28 vs环境-C语言实用调试技巧

int main() { int i0; for(i0;i<100;i) { printf("%d",i); } } 1.Debug 和Release的介绍 Debug通常称为调试版本&#xff0c;它包含调试信息&#xff0c;并且不做任何优化&#xff0c;便于程序员调试程序。 Release称为发布版本&#x…

束搜索(与贪心、穷举对比)

一、贪心搜索 1、基于贪心搜索从Y中找到具有最高条件概率的词元&#xff0c;但贪心可能不是最优解 2、比如 &#xff08;1&#xff09;贪心&#xff1a;.5*.4*.2*.1.0024 &#xff08;2&#xff09;另外&#xff1a;.5*.3*.6*.6.0054 二、穷举搜索 &#xff08;1&#xff0…

网络协议二 : 使用Cisco Packet Traceer工具模拟网络环境

1. 安装 Cisco Packet Tracer 2. 两个pc直连 2.1 打开 packet tracer 软件&#xff0c;弄两个pc上去&#xff0c; 2.2 然后使用 线 将 两台PC链接起来&#xff0c;链接的时候&#xff0c;会使用线&#xff0c;如果你不知道用什么线&#xff0c;可以使用自动连接线 2.3 配置IP …

UDP程序设计

UDP协议概述 UDP&#xff0c;User Datagram Protocol&#xff0c;用户数据报协议&#xff0c;是一个简单的面向数据报(package-oriented)的传输层协议&#xff0c;规范为&#xff1a;RFC 768。 UDP提供数据的不可靠传递&#xff0c;它一旦把应用程序发给网络层的数据发送出去…

NumpyPandas:Pandas库(50%-100%)

目录 前言 一、排序 1.使用索引排序 2.使用变量值排序 二、计算新变量 1.新变量为常量 2.根据原变量新增列 3.基于一个原变量做函数运算 4.在指定位置插入新列 三、修改替换变量值 1.对应数值替换 2.指定范围替换 四、虚拟变量变换 五、数值变量分组 六、数据分组…

Anaconda目录

安装目录 Anaconda 在默认情况下会安装到 C:\ProgramData\Anaconda3&#xff0c;而 conda 环境和包会安装在 C:\Users\username\.conda\ 目录下。 备注&#xff1a;我是在windows下安装 的Anaconda。我的安装目录是C:\Program Files\Anaconda3 pkgs目录 在以上两个目录下都有…

QQ微信头像制图工具箱小程序纯前端源码

微信小程序源码&#xff0c;经测试QQ小程序也可以完美运行&#xff0c;所以给大家分享一下这个QQ微信头像制图工具箱小程序纯前端源码。 主要功能有文字九格、头像挂件生成、爆趣九宫格、形状九宫格、创意长图、情侣头像、猫狗交流器。 这个QQ微信小程序源码是纯前端的&#x…

隧道可视化:实时监控保障行车安全

通过图扑可视化实现隧道的实时监控、数据分析及智能报警系统&#xff0c;提供全面的隧道管理和决策支持&#xff0c;提升行车安全&#xff0c;优化维护策略&#xff0c;确保交通顺畅。

notepad++如何跨文件搜索(比如搜索某个目录里的文件)

notepad如何跨文件搜索&#xff08;比如搜索某个目录里的文件&#xff09; notepad的搜索结果一直是比较迷&#xff0c;搜出一堆乱七八糟的东西&#xff0c;明显是缓存了&#xff0c;文件已经改名了都还不被notepad意识到

文案创作用这四款AI写作神器,告别熬夜赶稿!

都说懒人有懒福&#xff0c;现在的工具也越来越便捷于我们的日常和办公等等各种场景当中&#xff0c;其中文案的撰写和创作上也是令人脑瓜子疼的事情&#xff0c;所以锁着人工智能的兴起&#xff0c;ai智能写作工具助力我们快速地写作适合的文章&#xff0c;一起来看看下面这四…

数据容器-小结

目录 一、数据容器特点比较 二、数据容器操作小结 1、通用序列操作 2、通用的转换操作 3、案例演示 一、数据容器特点比较 二、数据容器操作小结 1、通用序列操作 2、通用的转换操作 3、案例演示 1&#xff09;list([iterable])&#xff1a;转换成列表 str_a "…

ctfshow解题方法

171 172 爆库名->爆表名->爆字段名->爆字段值 -1 union select 1,database() ,3 -- //返回数据库名 -1 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema库名 -- //获取数据库里的表名 -1 union select 1,group_concat(…

jmeter-beanshell学习-try处理异常

有时候代码执行过程中&#xff0c;出现一些不能处理的情况&#xff0c;就会报错&#xff0c;还影响之后的代码执行&#xff0c;就需要跳过异常。 上面这情况报错了&#xff0c;还影响了下面的打印。beanshell用try和catch处理异常&#xff0c;下面是try的用法&#xff0c;和if有…

Linux系列--shell编程一

一、Linux系统结构 一、内核层 内核是Linux系统的核心部分&#xff0c;它负责管理系统各种硬件设备、文件系统、内存管理和进程管理等核心任务。Linux内核设计了良好的模块化结构&#xff0c;可以动态地加载和卸载内核模块&#xff0c;这使得内核可以兼容各种不同的硬件设备和…