Ok, I got it working. I split up the problem and I was able to figure it out...just took me a while. Here it is for those who are interested. I left all of the pages instead of just keeping the top 100.
Thanks!
Code:
#!/bin/bash
#===============================================================================
#
#===============================================================================
#@| SYNOPSIS
# |
#-| Filename: findPopularPages.sh
#-| Version: 1.0
# |
#-| Purpose:
#-| This script finds the popularity of pages of a disksim
#-| formatted trace file.
#-|
#-| Inputs: Real world trace file in the DiskSim format
#-|
#-| Outputs: Prints trace statistics to screen
#-|
#------------------------------------------------------------------------------
#@| REQUIREMENTS / DEPENDENCIES / ASSUMPTIONS
# |
#------------------------------------------------------------------------------
#@| REVISION HISTORY
# |
#-| Date Created/Revised: 4/30/2011 Author/Revisor: Jonathan Tjioe
#-| STR #: Bug ID: Description:
#-| 1.0 Jonathan Tjioe (4/30/2011)
# |
#===============================================================================
FILE=$1
SCRIPT=findPopularPages.sh
PWD=`pwd`
printf "\nStarted $SCRIPT on $FILE at:\t\t `date`"
#Only print the Write requests ($5==0)
removeReads() {
cat $FILE | awk '$5==0 {print $0}' > TEMP1
}
#The LBA must start at a block address that is divisible by 4
#The size must be in multipes of 4
adjustBlockAndSize() {
cat TEMP1 | awk '$3=(int($3/4)*4)' |awk '{
if (($4%4)!=0) {print $1" "$2" "$3" "((int($4/4)*4)+4)" "$5}
else {print $0} }' > TEMP2
}
#Need to save a list of all of the pages for each line
createPageListing() {
cat TEMP2 | awk '{for (i=$3; i<($3+$4); i+=4) {print i}}' > TEMP3
}
#Count how many times a page was written to
countUniquePages() {
cat TEMP3 | awk '{count[$1]++} END {for(i in count) print i, count[i]}' > TEMP4
}
#Sort the pages by the most popular in descending order
sortPopularity() {
cat TEMP4 | sort -nr -k2 > ${FILE}_mostPopularPages
}
#Delete temporary files
cleanUp() {
rm TEMP1 TEMP2 TEMP3 TEMP4
}
############## Start of Main ##############
removeReads
adjustBlockAndSize
createPageListing
countUniquePages
sortPopularity
cleanUp
############## End of Main ################
printf "\nFinished $SCRIPT on $FILE at:\t\t `date`\n\n"
exit 0
Hi everybody,
I want to know if there is any posibility to find out - on an AIX system - which are the the users who consume most space or at least a posibility to obtain a list with all the users and how much space are they consuming ?
Trying to use du command was useless. Any idea?... (5 Replies)
I'm using bash on cygwin/windows.
I'm trying to use find and exclude the directory /cygdrive/c/System\ Volume\ Information. When I try to use the command below I get the error "rm: cannot remove `/cygdrive/c/System Volume Information': Is a directory.
Can someone tell me what I am doing... (3 Replies)
Just joined after using the site as a guest.. (Very Good Stuff in here.. thanks folks.)
I am in the process of hardening a Solaris 10 server using JASS. I also must use DISA Security Checklists (SRR) scripts to test for things that did not get hardened to DISA standards.
One of the things... (5 Replies)
i have some 1000 files in my dir and i want to find top 100 files and move them to some other location:
below the 2 commands i used, but it is not working
ls -ltr | grep ^- | head -100 | xargs mv destination - _________>not working
ls -ltr | grep ^- | head -100 | xargs mv {}... (3 Replies)
Hi all,
I am looking to find the size of the database by counting all the used pages.
1. I have a file which reads like below
16384 4750850
32768 165
The first column is the pagesize and the second column is the number of pages... (6 Replies)
OFFSET=100;
PAGESIZE=4096;
int dummy_last;
TOPSTACK = (caddr_t)(&dummy_last - OFFSET);
TOPSTACK = (caddr_t)((unsigned long)TOPSTACK -
((unsigned long)TOPSTACK % PAGESIZE));
this i a code to find the top of the stack, but not able to figure it out. can... (2 Replies)
For the first 4 users only that are currently logged in output their effective user id.
It's not important the order in which each logged in i just want to have the top 4.
Same question as here...... (0 Replies)
I wanted to know how to find the memory taken by a process using top command. The output of the top command is as follows as an example:
Mem: 13333364k total, 13238904k used, 94460k free, 623640k buffers
Swap: 25165816k total, 112k used, 25165704k free, 4572904k cached
PID USER ... (6 Replies)
I have a folder structure with multiple sub directories
MAIN
FOLDER1
SUBFOLDER1
files......
FOLDER2
SUBFOLDER1
files......
etc
and I want to find a way to create an output of every files first 20 lines. I've been searching and testing and failing. I can do it in a... (2 Replies)
Discussion started by: darbs121
2 Replies
LEARN ABOUT DEBIAN
igawk
IGAWK(1) Utility Commands IGAWK(1)NAME
igawk - gawk with include files
SYNOPSIS
igawk [ all gawk options ] -f program-file [ -- ] file ...
igawk [ all gawk options ] [ -- ] program-text file ...
DESCRIPTION
Igawk is a simple shell script that adds the ability to have ``include files'' to gawk(1).
AWK programs for igawk are the same as for gawk, except that, in addition, you may have lines like
@include getopt.awk
in your program to include the file getopt.awk from either the current directory or one of the other directories in the search path.
OPTIONS
See gawk(1) for a full description of the AWK language and the options that gawk supports.
EXAMPLES
cat << EOF > test.awk
@include getopt.awk
BEGIN {
while (getopt(ARGC, ARGV, "am:q") != -1)
...
}
EOF
igawk -f test.awk
SEE ALSO gawk(1)
Effective AWK Programming, Edition 1.0, published by the Free Software Foundation, 1995.
AUTHOR
Arnold Robbins (arnold@skeeve.com).
Free Software Foundation Nov 3 1999 IGAWK(1)