用 Bash 脚本掌控资源占用情况124


在服务器管理中,监视和控制资源使用情况(如 CPU、内存、磁盘空间)至关重要。Bash 脚本为执行此任务提供了一种强大的工具,使您可以自动化监视和控制过程。

监控资源占用情况

要监控资源占用情况,可以使用以下命令:```bash
# CPU 使用率
top -b -n 1 | head -15
# 内存使用率
free -m
# 磁盘空间使用率
df -h
```

这些命令将提供有关系统资源使用情况的实时洞察。您可以使用以下命令解析输出并提取特定值:```bash
# 获取 CPU 使用率百分比
cpu_usage=`top -b -n 1 | head -15 | awk '/%Cpu:/ { print $2":"$3":"$4 }'`
# 获取已用内存 (GB)
mem_usage=`free -m | awk '/Mem:/ { print $3/1024 }'`
# 获取已用磁盘空间百分比
disk_usage=`df -h | awk '/\//{ print $5 }'`
```

控制资源占用情况

除了监视资源占用情况外,Bash 脚本还允许您控制它。以下是一些示例:

限制 CPU 使用率


```bash
# 限制进程 ID 为 1234 的进程的 CPU 使用率不超过 50%
renice 5 1234
```

终止资源消耗大的进程


```bash
# 终止 CPU 使用率超过 80% 的进程
pkill -f "cpu_usage > 80"
```

释放内存


```bash
# 丢弃缓冲区和高速缓存中的非活动内存
sync; echo 3 > /proc/sys/vm/drop_caches
```

扩展磁盘空间


```bash
# 扩展分区 /dev/sda1 到磁盘末尾
fdisk /dev/sda1
d
n
p
1
```

通过使用这些 Bash 脚本,您可以自动化资源管理任务,优化服务器性能并防止资源不足问题。

完整脚本示例

以下是一个完整的 Bash 脚本示例,可用于监视和控制 CPU 使用率:```bash
#!/bin/bash
# 设置阈值
cpu_threshold=80
# 获取 CPU 使用率
cpu_usage=`top -b -n 1 | head -15 | awk '/%Cpu:/ { print $2":"$3":"$4 }'`
# 检查 CPU 使用率是否超过阈值
if [[ $cpu_usage > $cpu_threshold ]]; then
# 采取行动,例如:
# 发送警报
echo "Warning: CPU usage above threshold ($cpu_usage) at `date`" | mail -s "CPU Alert" root
# 限制资源消耗大的进程的 CPU 使用率
ps aux --sort -%cpu | head -10 | awk '{ print $2 }' | xargs renice 5
fi
```

通过调整阈值并添加其他行动,您可以根据需要自定义此脚本以满足您的特定要求。

使用 Bash 脚本,您可以有效地监视和控制资源占用情况,从而防止性能问题并优化服务器性能。通过自动化资源管理任务,您可以释放更多时间专注于其他关键任务,让服务器始终保持最佳状态。

2024-12-21


上一篇:Bash 脚本:按顺序执行命令

下一篇:Windows无法识别Bash脚本:原因和解决方案