给我写一个监控centos系统状态的脚本
时间: 2023-08-31 09:40:42 浏览: 69
### 回答1:
以下是一个简单的监控 CentOS 系统状态的脚本示例:
```
#!/bin/bash
# 获取 CPU 使用率
cpu=$(top -bn1 | grep "Cpu(s)" | awk '{print $2 + $4}')
# 获取内存使用率
mem=$(free -m | awk 'NR==2{printf "%.2f%%", $3*100/$2 }')
# 获取磁盘使用率
disk=$(df -h | awk '$NF=="/"{printf "%s", $5}')
# 获取网络流量
rx=$(ifconfig enp0s3 | grep "RX bytes" | awk '{print $2}')
tx=$(ifconfig enp0s3 | grep "TX bytes" | awk '{print $6}')
# 输出结果
echo "CPU使用率: $cpu"
echo "内存使用率: $mem"
echo "磁盘使用率: $disk"
echo "网络流量(RX/TX): $rx / $tx"
```
注意:上面的脚本中使用了如 top、free、df、ifconfig等命令,这些命令可能需要在系统中预先安装。
请根据你的系统环境修改网卡名称,如 enp0s3。
运行方法:
```
chmod +x sys_monitor.sh
./sys_monitor.sh
```
这样就可以查看当前 CPU、内存、磁盘、网络流量的使用状态。
### 回答2:
当然可以!以下是一个简单的监控CentOS系统状态的脚本:
```bash
#!/bin/bash
# 检查系统负载
loadavg=$(cat /proc/loadavg | awk '{print $1}')
echo "系统负载:$loadavg"
# 检查CPU使用率
cpu_usage=$(top -bn1 | grep "Cpu(s)" | awk '{print $2 + $4}')
echo "CPU使用率:$cpu_usage%"
# 检查内存使用情况
total_mem=$(free -m | awk '/Mem:/{print $2}')
used_mem=$(free -m | awk '/Mem:/{print $3}')
free_mem=$(free -m | awk '/Mem:/{print $4}')
echo "内存使用情况:已使用 $used_mem MB,剩余 $free_mem MB,总计 $total_mem MB"
# 检查磁盘空间
disk_usage=$(df -h | awk '$NF=="/"{print $5}')
echo "磁盘使用率:$disk_usage"
# 检查网络连接数
net_connections=$(netstat -ant | grep ESTABLISHED | wc -l)
echo "网络连接数:$net_connections"
# 检查系统时间
system_time=$(date "+%Y-%m-%d %H:%M:%S")
echo "系统时间:$system_time"
```
你可以将以上脚本保存为一个文件(比如`system_monitor.sh`),然后在CentOS系统上通过运行`bash system_monitor.sh`来执行该脚本。脚本会输出系统的负载、CPU使用率、内存使用情况、磁盘使用率、网络连接数和系统时间等信息。你也可以根据具体需求进行修改和扩展。
### 回答3:
这是一个监控CentOS系统状态的脚本示例:
#!/bin/bash
# 检查CPU的负载
cpu_load=$(uptime | awk '{print $(NF-2)}' | sed 's/,//')
echo "当前CPU负载:$cpu_load"
# 检查内存的使用情况
total_mem=$(free -h | awk 'NR==2{print $2}')
used_mem=$(free -h | awk 'NR==2{print $3}')
echo "内存使用情况:已使用 $used_mem / 总共 $total_mem"
# 检查磁盘的使用情况
disk_usage=$(df -h | awk '$NF=="/"{print $5}')
echo "磁盘使用情况:$disk_usage"
# 检查网络连接情况
active_connections=$(netstat -an | grep ESTABLISHED | wc -l)
echo "活动连接数:$active_connections"
# 检查系统负荷情况
system_load=$(uptime | awk '{print $NF}')
echo "系统负荷:$system_load"
# 检查重要服务的运行状态
services=("httpd" "mysql" "ssh")
for service in ${services[@]}
do
if systemctl is-active --quiet $service; then
echo "服务 $service 正在运行"
else
echo "服务 $service 未运行"
fi
done
将以上脚本保存为一个.sh文件,然后运行该脚本,即可获取当前CentOS系统的状态信息。
脚本中使用不同的命令来获取CPU负载、内存使用情况、磁盘使用情况、网络连接数量、系统负荷以及重要服务的运行状态。你可以根据需要自行修改脚本中的命令和参数来实现特定的监控要求。