Você pode tentar usar free
.
free -s n
atualizará a saída a cada n
segundos. Embrulhe isso em um if
para qualquer limite que você ache que é "muita memória" sendo usada, e exiba uma mensagem quando chegar a esse ponto.
EDIT: Aqui está o script que eu criei. Rude, mas funciona.
#Checks for low memory.
#!/bin/bash
#cutoff_frac is basically how much used memory can be at in terms of how much
#total memory you have...2 is 1/2 of 100% or an alert when you're using 50% mem, etc.
cutoff_frac=2
total_mem=$(free|awk '/^Mem:/{print }')
let "threshold = $total_mem / $cutoff_frac"
while :
do
free_mem=$(free|awk '/^Mem:/{print }')
if [ $free_mem -lt $threshold ]
then
notify-send "Low memory!!"
fi
sleep 5
done
exit