我希望有一行
shell / bash可以做这些事情:
test "`free | grep | awk | whatever` -gt 80" && any_command
将整个系统使用的ram的总百分比与硬编码的数字进行比较(在我的情况下为80).如果ram高于给定的百分比,则只要any_command执行,测试无关紧要.
>确切的字节/兆字节而不是百分比是可以的
>这应该适用于典型的ubuntu 14.04
>打算用作cron作业
>奖励:单行做同样的事情,但检查ram的特定过程
更新
关于monit / bluepill / god这样的问题是如何解决这个问题的答案.我同意100%,你应该在这些答案中遵循建议.然而,这个问题具体是关于我描述的确切线,无论出于何种原因,假设所有可能涉及的警告和问题.
怎么样:
[ $(free -m| grep Mem | awk '{ print int($3/$2*100) }') -gt "80" ] && echo "greater " || echo "lesser"
对于流程消耗,这里有一个解决方案的可能部分:
for p in $(pgrep bash); do total=$(($total + $(awk '/VmSize/ { print $2 }' /proc/$p/status))); done ; echo "Total memory usage: $total kb" ; unset total
将它们两者结合起来留给读者练习.