请编写shell程序,监控Linux下的内存剩余空间和磁盘剩余容量,3秒查一次,将查询到的内存和磁盘剩余空间记录到文档中(后期可以用来排查是否有内存泄漏等问题),当内存小于500M磁盘容量磁盘空间小于5G时报警
时间: 2023-07-16 15:13:46 浏览: 38
以下是一个输出到文件的示例脚本:
```bash
#!/bin/bash
while true
do
# 获取内存剩余空间,单位为KB
mem_free=$(free -k | awk 'NR==2{print $4}')
# 获取磁盘剩余容量,单位为KB
disk_free=$(df -k / | awk 'NR==2{print $4}')
# 将查询到的内存和磁盘剩余空间记录到文档中
echo "$(date +'%Y-%m-%d %H:%M:%S') Memory Free: $mem_free KB, Disk Free: $disk_free KB" >> /path/to/logfile.txt
# 当内存小于500M或磁盘容量小于5G时报警
if [ $mem_free -lt 500000 ] || [ $disk_free -lt 5000000 ]; then
echo "$(date +'%Y-%m-%d %H:%M:%S') Alert: Memory or Disk space is running low!" >> /path/to/alertfile.txt
fi
sleep 3
done
```
说明:
- `free -k` 命令可以获取内存信息,其中第二行第四列为可用内存大小(单位为KB)。
- `df -k /` 命令可以获取根目录磁盘信息,其中第二行第四列为可用磁盘空间大小(单位为KB)。
- `$(date +'%Y-%m-%d %H:%M:%S')` 可以输出当前的时间戳。
- `>>` 可以将输出的内容追加到指定文件的末尾。
- `sleep 3` 可以让程序等待3秒后再次执行循环。