#!/bin/sh clearstr=`clear` /usr/sbin/dtrace -n ' #pragma D option quiet /* constants */ inline int LINES = 18; inline string CLEAR = "'$clearstr'"; dtrace:::BEGIN { /* reverse sorting order */ setopt("aggsortrev"); printf("Tracing... Please wait.\n"); } syscall::read:entry { /* count number of scalls */ @scalls = count(); @scall_details[pid, execname, arg0, fds[arg0].fi_pathname] = count(); } profile:::tick-2sec { /* clear the screen */ printf("%s", CLEAR); /* show top LINES results only */ trunc(@scall_details, LINES); /* print header */ printf("\n"); printf(" %-63s ", "TOTAL"); printa("%@10u\n", @scalls); printf("\n"); /* print overview */ printa(" %-6u %-15s %-4u %-35s %@10u\n", @scall_details); printf("\n"); /* reset counters */ trunc(@scalls); trunc(@scall_details); } '