#!/usr/sbin/dtrace -s #pragma D option quiet proc:::exec-success { @execs[execname] = count(); } syscall::open:entry { self->filename = arg0; } syscall::open:return /self->filename != NULL/ { this->filename = copyinstr (self->filename); self->filename = NULL; @files[execname,this->filename == NULL ? "" : this->filename] = count(); @totals[this->filename == NULL ? "" : this->filename] = count(); } profile:::tick-1sec { printf("\n%Y\n", walltimestamp); printf("%-10s\n", "NEW EXEC"); printa("%-10s %@d\n", @execs); printf("%-10s %-40s %s\n", "EXECNAME", "FILENAME", "COUNT"); printa("%-10s %-40s %@d\n", @files); trunc(@files); trunc(@execs); } END { printf("\n"); printf("%-40s %s\n", "FILENAME", "COUNT"); printa("%-40s %@d\n", @totals); }