blob: eabb74dba8f36052a4eb1e54b92e6823bf67c755 [file] [log] [blame]
#!/bin/bash
############################################################################
#
# Script for monitoring system-wide memory usage.
#
# Copyright (C) 2009 Bart Van Assche <bvanassche@acm.org>.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation, version 2
# of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
############################################################################
#########################
# Function definitions #
#########################
function usage {
echo "Usage: $0 [-h] [-i <interval>]"
echo " -h - display this information."
echo " -i - monitoring interval in seconds."
}
#########################
# Default settings #
#########################
interval=10
#########################
# Argument processing #
#########################
set -- $(/usr/bin/getopt "hi:" "$@")
while [ "$1" != "${1#-}" ]
do
case "$1" in
'-i') interval="$2"; shift; shift;;
'--') shift;;
*) usage; exit 1;;
esac
done
if [ "$#" != 0 ] || [ "${interval}" -le 0 ]; then
usage
exit 1
fi
####################
# Performance test #
####################
printf "%-10s " "Time"
cat /proc/meminfo |
while read -r label number unit
do
printf " %10s" "${label%:}"
done
echo
while true
do
printf "%-10d" "$(date +%s)"
cat /proc/meminfo |
while read -r label number unit
do
printf " %10d" "${number}"
done
echo
sleep "${interval}"
done