目录
一、要求
二、脚本介绍
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 微信名片”字样,就会出现我的二维码,欢迎沟通探讨。