.TH opensnoop 8  "2020-02-20" "USER COMMANDS"
.SH NAME
opensnoop \- Trace open() syscalls. Uses Linux eBPF/bcc.
.SH SYNOPSIS
.B opensnoop [\-h] [\-T] [\-U] [\-x] [\-p PID] [\-t TID] [\-u UID]
             [\-d DURATION] [\-n NAME] [\-e] [\-f FLAG_FILTER] [\-F]
             [--cgroupmap MAPPATH] [--mntnsmap MAPPATH]
.SH DESCRIPTION
opensnoop traces the open() syscall, showing which processes are attempting
to open which files. This can be useful for determining the location of config
and log files, or for troubleshooting applications that are failing, specially
on startup.

This works by tracing the kernel sys_open() function using dynamic tracing, and
will need updating to match any changes to this function.

This makes use of a Linux 4.4 feature (bpf_perf_event_output());
for kernels older than 4.4, see the version under tools/old,
which uses an older mechanism.

Since this uses BPF, only the root user can use this tool.
.SH REQUIREMENTS
CONFIG_BPF and bcc.
.SH OPTIONS
.TP
\-h
Print usage message.
.TP
\-T
Include a timestamp column.
.TP
\-U
Show UID.
.TP
\-x
Only print failed opens.
.TP
\-p PID
Trace this process ID only (filtered in-kernel).
.TP
\-t TID
Trace this thread ID only (filtered in-kernel).
.TP
\-u UID
Trace this UID only (filtered in-kernel).
.TP
\-d DURATION
Total duration of trace in seconds.
.TP
\-n name
Only print processes where its name partially matches 'name'
.TP
\-e
Show extended fields.
.TP
\-f FLAG
Filter on open() flags, e.g., O_WRONLY.
.TP
\-F
Show full path for an open file with relative path.
.TP
\--cgroupmap MAPPATH
Trace cgroups in this BPF map only (filtered in-kernel).
.TP
\--mntnsmap  MAPPATH
Trace mount namespaces in this BPF map only (filtered in-kernel).
.SH EXAMPLES
.TP
Trace all open() syscalls:
#
.B opensnoop
.TP
Trace all open() syscalls, for 10 seconds only:
#
.B opensnoop -d 10
.TP
Trace all open() syscalls, and include timestamps:
#
.B opensnoop \-T
.TP
Show UID:
#
.B opensnoop \-U
.TP
Trace only open() syscalls that failed:
#
.B opensnoop \-x
.TP
Trace PID 181 only:
#
.B opensnoop \-p 181
.TP
Trace UID 1000 only:
#
.B opensnoop \-u 1000
.TP
Trace all open() syscalls from processes where its name partially matches 'ed':
#
.B opensnoop \-n ed
.TP
Show extended fields:
#
.B opensnoop \-e
.TP
Only print calls for writing:
#
.B opensnoop \-f O_WRONLY \-f O_RDWR
.TP
Trace a set of cgroups only (see special_filtering.md from bcc sources for more details):
#
.B opensnoop \-\-cgroupmap /sys/fs/bpf/test01
.SH FIELDS
.TP
TIME(s)
Time of the call, in seconds.
.TP
UID
User ID
.TP
PID
Process ID
.TP
TID
Thread ID
.TP
COMM
Process name
.TP
FD
File descriptor (if success), or -1 (if failed)
.TP
ERR
Error number (see the system's errno.h)
.TP
FLAGS
Flags passed to open(2), in octal
.TP
PATH
Open path
.SH OVERHEAD
This traces the kernel open function and prints output for each event. As the
rate of this is generally expected to be low (< 1000/s), the overhead is also
expected to be negligible. If you have an application that is calling a high
rate of open()s, then test and understand overhead before use.
.SH SOURCE
This is from bcc.
.IP
https://github.com/iovisor/bcc
.PP
Also look in the bcc distribution for a companion _examples.txt file containing
example usage, output, and commentary for this tool.
.SH OS
Linux
.SH STABILITY
Unstable - in development.
.SH AUTHOR
Brendan Gregg, Rocky Xing
.SH SEE ALSO
execsnoop(8), funccount(1)
