#!/bin/bash # total used free shared buffers cached #Mem: 1926908 1618212 308696 0 9732 179340 #-/+ buffers/cache: 1429140 497768 #Swap: 2031608 79512 1952096 while true do MEM_USED=$(free | awk '/^Mem:/{ print $3 }') echo -n "Mem: ${MEM_USED}k"; if [ "$PREV_MEM_USED" ] then MEM_DIFF=$((MEM_USED - PREV_MEM_USED)) [ $MEM_DIFF -gt 0 ] && SIGN='+' || SIGN='' echo -n " (${SIGN}${MEM_DIFF}k)" fi PREV_MEM_USED=$MEM_USED SWAP_USED=$(free | awk '/^Swap:/{ print $3 }') echo -n " Swap: ${SWAP_USED}k"; if [ "$PREV_SWAP_USED" ] then SWAP_DIFF=$((SWAP_USED - PREV_SWAP_USED)) [ $SWAP_DIFF -gt 0 ] && SIGN='+' || SIGN='' echo -n " (${SIGN}${SWAP_DIFF}k)" fi PREV_SWAP_USED=$SWAP_USED TOTAL_USED=$((MEM_USED + SWAP_USED)) echo -n " Total: ${TOTAL_USED}k"; if [ "$PREV_TOTAL_USED" ] then TOTAL_DIFF=$((TOTAL_USED - PREV_TOTAL_USED)) [ $TOTAL_DIFF -gt 0 ] && SIGN='+' || SIGN='' echo -n " (${SIGN}${TOTAL_DIFF}k)" fi PREV_TOTAL_USED=$TOTAL_USED if [ "$TOTAL_SINCE_START" ] then SINCE_START_DIFF=$((TOTAL_SINCE_START - $TOTAL_USED)) [ $SINCE_START_DIFF -gt 0 ] && SIGN='+' || SIGN='' echo -n " Since start: ${SIGN}${SINCE_START_DIFF}k" else TOTAL_SINCE_START=$TOTAL_USED fi echo sleep 1 done