您的位置:首页 > 教育 > 培训 > linux脚本:自动检测的bash脚本,用于检查linux的系统性能

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

2024/10/5 19:09:20 来源:https://blog.csdn.net/weixin_70208651/article/details/140758377  浏览:    关键词:linux脚本:自动检测的bash脚本,用于检查linux的系统性能

目录

一、要求

二、脚本介绍

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; thenecho "===== 磁盘I/O ====="iostat -dx 2 1 | egrep "Device|sda|sdb"  ##假设你的主要磁盘是sda或sdb,根据实际情况调整
elseecho "iostat命令未找到,请安装sysstat包"
fi# 系统负载
echo "===== 系统负载 ====="
uptime# 进程信息(CPU和内存占用最高的进程)
echo "===== 进程信息(CPU占用最高)====="
ps aux --sort=-%cpu | head -n 10echo "===== 进程信息(内存占用最高)====="
ps aux --sort=-%mem | head -n 10echo "===== 系统性能检测完成 ====="

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

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 微信名片”字样,就会出现我的二维码,欢迎沟通探讨。


版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com