我想出了一个小脚本,每当内存低于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
答案 0 :(得分:2)
据我所知,您的脚本会检查“可用”内存。请记住'buff / cache'也是免费记忆。
有趣的阅读:https://www.linuxatemyram.com
如果您需要查找文件描述符,可以使用lsof
或fopen
甚至/proc/PID/fd
找到打开文件的列表。