Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

filemon(4) [netbsd man page]

FILEMON(4)						   BSD Kernel Interfaces Manual 						FILEMON(4)

NAME
filemon -- track interesting system calls SYNOPSIS
#include <filemon.h> DESCRIPTION
filemon provides a means for tracking the successful system calls performed by a process. It is used by make(1) to track the activities of build scripts, for the purpose of automatically learning dependencies. The data captured by filemon for the script n=`wc -l /etc/motd`; echo "int motd_lines = $n;" > foo.h.new cmp -s foo.h foo.h.new 2> /dev/null || mv foo.h.new foo.h looks like: # filemon version 4 # Target pid 24291 V 4 E 29676 /bin/sh R 29676 /etc/ld.so.conf R 29676 /lib/libedit.so.2 R 29676 /lib/libtermcap.so.0 R 29676 /lib/libc.so.12 F 29676 4899 E 4899 /usr/bin/wc R 4899 /etc/ld.so.conf R 4899 /usr/lib/libc.so.12 R 4899 /etc/motd X 4899 0 W 29676 foo.h.new X 29676 0 # Bye bye E 3250 /bin/sh R 3250 /etc/ld.so.conf R 3250 /lib/libedit.so.2 R 3250 /lib/libtermcap.so.0 R 3250 /lib/libc.so.12 W 26673 /dev/null E 26673 /usr/bin/cmp R 26673 /etc/ld.so.conf R 26673 /usr/lib/libc.so.12 X 26673 2 E 576 /bin/mv R 576 /etc/ld.so.conf R 576 /lib/libc.so.12 M 576 'foo.h.new' 'foo.h' X 576 0 X 3250 0 # Bye bye Most records follow the format: type pid data where type is one of the list below, and unless otherwise specified, data is a pathname. C chdir(2). D unlink(2). E exec(3). F fork(2), vfork(2); data is the process id of the child. L link(2), symlink(2); data is two pathnames. M rename(2); data is two pathnames. R open(2) for read or read-write. W open(2) for writing or read-write. X exit(3); data is the exit status. V indicates the version of filemon. FILES
/dev/filemon EXAMPLES
The following example demonstrates the basic usage of filemon: #include <filemon.h> pid_d pid; int fd, tfd; int status; filemon_fd = open("/dev/filemon", O_RDWR); temp_fd = mkstemp("/tmp/filemon.XXXXXXX"); /* give filemon the temp file to use */ ioctl(filemon_fd, FILEMON_SET_FD, &temp_fd); /* children do not need these once they exec */ fcntl(filemon_fd, F_SETFD, 1); fcntl(temp_fd, F_SETFD, 1); pid = fork(); switch(pid) { case -1: err(1, "cannot fork"); break; case 0: pid = getpid(); /* tell filemon to monitor this process */ ioctl(filemon_fd, FILEMON_SET_PID, &pid); execvp(...); _exit(1); break; default: status = wait(); close(filemon_fd); lseek(temp_fd, SEEK_SET, 0); /* read the captured syscalls from temp_fd */ close(temp_fd); break; } The output of filemon is intended to be simple to parse. It is possible to achieve almost equivalent results with dtrace(1) though on many systems this requires elevated privileges. Also, ktrace(1) can capture similar data, but records failed system calls as well as successful, and is thus more complex to post-process. HISTORY
filemon was contributed by Juniper Networks. BSD
September 29, 2011 BSD

Check Out this Related Man Page

SADC(8) 							Linux User's Manual							   SADC(8)

NAME
sadc - System activity data collector. SYNOPSIS
/usr/lib/sa/sadc [ -I ] [ -V ] [ -x pid ] [ -X pid ] [ interval [ count ] ] [ outfile ] DESCRIPTION
The sadc command samples system data a specified number of times ( count ) at a specified interval measured in seconds ( interval ). It writes in binary format to the specified outfile or to the standard output. If outfile is set to -, then sadc uses the standard system activity daily data file, the /var/log/sa/sadd file, where the dd parameter indicates the current day. When the count parameter is not specified, sadc writes its data endlessly. When both interval and count are not specified, a dummy record, which is used at system startup to mark the time when the counter restarts from 0, will be written. For example, one of the system startup script may write the restart mark to the daily data file by the command entry: /usr/lib/sa/sadc - The sadc command is intended to be used as a backend to the sar command. Note: The sadc command reports only local activity. OPTIONS
-I Tell sadc to report statistics for all system interrupts. By default, sadc only reports statistics for the total number of inter- rupts. -V Print version number and usage then exit. -x pid Tell sadc to report statistics for the process whose PID is pid. -X pid Tell sadc to report statistics for the child processes of the process whose PID is pid. The SELF keyword indicates that statistics are to be reported for the child processes of the sadc process itself. EXAMPLES
/usr/lib/sa/sadc 1 10 /tmp/datafile Write 10 records of one second intervals to the /tmp/datafile binary file. BUGS
/proc filesystem must be mounted for the sadc command to work. All the statistics are not necessarily available, depending on the kernel version used. FILES
/var/log/sa/sadd Indicate the daily data file, where the dd parameter is a number representing the day of the month. /proc contains various files with system statistics. AUTHOR
Sebastien Godard <sebastien.godard@wanadoo.fr> SEE ALSO
sar(1), sa1(8), sa2(8), mpstat(1), iostat(1), vmstat(8) http://perso.wanadoo.fr/sebastien.godard/ Linux DECEMBER 1999 SADC(8)
Man Page