#!/bin/sh
print_usage() {
echo "Usage : $0 [interval][count]"
echo "interval : Number"
echo "count : Number"
exit 0;
}
result_tmp_file="/tmp/vmstat_result.$$"
result_file="vmstat_result.txt"
result_directory="./vmlog/"
if [ "$1" = "-help" ]
then
print_usage
fi
# interval check
if [ -z "$1" ]
then
interval=30
else
interval $1
if [ -n "`echo $interval | tr -d [0-9]`" ]
then
print_usage
else
interval=$1
fi
fi
if [ -n "$2" ]
then
if [ -n "`echo $2 | tr -d [0-9]`" ]
then
print_usage
else
count=$2
fi
fi
echo "####################################################################################################"
echo "# $0 Script"
echo "# Interval\t: $interval"
echo "# Count\t\t: $count"
echo "####################################################################################################"
# run...
echo "Running Start...."
cnt=0
while true
do
if [ ! -z "$count" ]
then
if [ $cnt -ge $count ]
then
break;
fi
fi
curr_date=`date +%Y/%m/%d`
filename_date=`date +%Y%m%d`
if [ -z "$old_date" -o "$old_date" != "$curr_date" ]
then
old_date=$curr_date
if [ !-d"$result_directory" ]
then
mkdir -p "$result_directory"
fi
echo "Date\tProc:r\tMEM:swap\tMEM:free\tPage:sr\tCPU:id\n">${result_directory}${filename_date}_${result_file}
fi
curr_time=` date +%H:%M:%S`
vmstat $interval 2 > $result_tmp_file
/* 각 OS의 결과에 맞게 수정이 필요함 */
cat $result_tmp_file | sed 1,3d | awk '($1+0==$1) {printf("%s%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n","'"$curr_date"'","'"$curr_time"'", $1,$4,$5,$12,$16,$17,$18)}' >> ${result_directory}${filename_date}_${result_file}
echo "[$0] $curr_date$curr_time"
cnt=`expr $cnt + 1`
done
echo "Running End..."