MST

星途 面试题库

面试题:Bash条件判断在系统管理场景的深度应用

编写一个Bash脚本,利用if语句与test命令实现对系统资源的监控。当CPU使用率超过80% 且内存使用率超过90% 时,通过邮件(假设已配置好邮件发送环境,可使用mail命令)向管理员发送警告信息,内容包含当前CPU使用率和内存使用率,并记录日志到 /var/log/resource_warning.log中;否则,输出'系统资源使用正常'。
43.0万 热度难度
编程语言Bash

知识考点

AI 面试

面试题答案

一键面试
#!/bin/bash

cpu_usage=$(top -bn1 | grep '%Cpu(s)' | awk '{print $2 + $4}')
mem_usage=$(free -h | awk '/Mem:/{print $3/$2 * 100}' | cut -d '.' -f 1)

if test $cpu_usage -gt 80 -a $mem_usage -gt 90
then
    echo "CPU使用率: $cpu_usage%,内存使用率: $mem_usage%" | mail -s "系统资源警告" 管理员邮箱
    echo "$(date) CPU使用率: $cpu_usage%,内存使用率: $mem_usage%" >> /var/log/resource_warning.log
else
    echo "系统资源使用正常"
fi