获取内存利用率以及文件描述符

时间:2018-05-30 09:12:37

标签: linux bash shell file-descriptor

我想出了一个小脚本,每当内存低于300 MB时发送电子邮件,但同时我有兴趣获得相应消耗更多内存并将其写入现有文件的开放或活动文件描述符 - / TMP / memory.txt

我不确定如何在现有脚本中容纳请求。任何输入都会非常有用。

subject="Check Memory Status"
to="myemail@domain.com"
ip=`ifconfig | grep -oP '(?<=inet addr:)\d+\.\d+\.\d+\d+'`

free=$(free -mt | grep Total | awk '{print $4}')

if [[ "$free" -le 300  ]]; then

   ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head >/tmp/memory.txt
   file=/tmp/memory.txt
   echo -e "Warning, Memory is running low! on $ip\n Free memory: $free MB" | mailx -a "$file" -s "$subject" "$to"
fi
exit 0

1 个答案:

答案 0 :(得分:2)

据我所知,您的脚本会检查“可用”内存。请记住'buff / cache'也是免费记忆。

有趣的阅读:https://www.linuxatemyram.com

如果您需要查找文件描述符,可以使用lsoffopen甚至/proc/PID/fd找到打开文件的列表。