.TH execsnoop 8  "2020-02-20" "USER COMMANDS"
.SH NAME
execsnoop \- Trace new processes via exec() syscalls. Uses Linux eBPF/bcc.
.SH SYNOPSIS
.B execsnoop [\-h] [\-T] [\-t] [\-x] [\-\-cgroupmap CGROUPMAP] [\-\-mntnsmap MAPPATH]
.B           [\-u USER] [\-q] [\-n NAME] [\-l LINE] [\-U] [\-\-max-args MAX_ARGS]
.SH DESCRIPTION
execsnoop traces new processes, showing the filename executed and argument
list.

It works by traces the execve() system call (commonly used exec() variant).
This catches new processes that follow the fork->exec sequence, as well as
processes that re-exec() themselves. Some applications fork() but do not
exec(), eg, for worker processes, which won't be included in the execsnoop
output.

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

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 time column (HH:MM:SS).
.TP
\-U
Include UID column.
.TP
\-t
Include a timestamp column.
.TP
\-u USER
Filter by UID (or username)
.TP
\-x
Include failed exec()s
.TP
\-q
Add "quotemarks" around arguments. Escape quotemarks in arguments with a
backslash. For tracing empty arguments or arguments that contain whitespace.
.TP
\-n NAME
Only print command lines matching this name (regex)
.TP
\-l LINE
Only print commands where arg contains this line (regex)
.TP
\--max-args MAXARGS
Maximum number of arguments parsed and displayed, defaults to 20
.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).
.TP
\-P PPID
Trace this parent PID only.
.TP
.SH EXAMPLES
.TP
Trace all exec() syscalls:
#
.B execsnoop
.TP
Trace all exec() syscalls, and include timestamps:
#
.B execsnoop \-t
.TP
Display process UID:
#
.B execsnoop \-U
.TP
Trace only UID 1000:
#
.B execsnoop \-u 1000
.TP
Trace only processes launched by root and display UID column:
#
.B execsnoop \-Uu root
.TP
Include failed exec()s:
#
.B execsnoop \-x
.TP
Put quotemarks around arguments.
#
.B execsnoop \-q
.TP
Only trace exec()s where the filename contains "mount":
#
.B execsnoop \-n mount
.TP
Only trace exec()s where argument's line contains "testpkg":
#
.B execsnoop \-l testpkg
.TP
Trace a set of cgroups only (see special_filtering.md from bcc sources for more details):
#
.B execsnoop \-\-cgroupmap /sys/fs/bpf/test01
.SH FIELDS
.TP
TIME
Time of exec() return, in HH:MM:SS format.
.TP
TIME(s)
Time of exec() return, in seconds.
.TP
UID
User ID
.TP
PCOMM
Parent process/command name.
.TP
PID
Process ID
.TP
PPID
Parent process ID
.TP
RET
Return value of exec(). 0 == successs. Failures are only shown when using the
\-x option.
.TP
ARGS
Filename for the exec(), followed be up to 19 arguments. An ellipsis "..." is
shown if the argument list is known to be truncated.
.SH OVERHEAD
This traces the kernel execve 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 exec()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
opensnoop(1)
