# This configuration file specifies which programs should be run
# when the specified event occurs in problem directory lifetime.
#
# It consists of directives and rules.
#
# Directives start with a reserved word. Currently, there is only one
# directive, "include". Its format is "include FILE".
# It causes files which match FILE to be read and
# parsed as if they are inserted textually where this directive
# occurs. FILE can use shell pattern metacharacters (*,?,etc) to
# specify multiple files. Relative paths are interpreted relative
# to current file.
#
# Rule starts with a line with non-space leading character.
# All subsequent lines which start with space or tab form one rule.
# Note that separating newline is *retained*. Example:
# EVENT=post-create date >/tmp/dt # semicolon is not needed here!
# echo $HOSTNAME `uname -r`
#
# Rules may be commented out with #. One # is sufficient to comment out
# even a multi-line rule (no need to comment out every line).
#
# Rules specify which programs to run on the problem directory.
# Each rule may have conditions to be checked before the program is run.
#
# Conditions have form VAR[!]=VAL or VAL~=REGEX, where VAR is either
# word "EVENT" or a name of problem directory element to be checked
# (for example, "executable", "package", hostname" etc).
#
# If all conditions match, the remaining part of the rule
# (the "program" part) is run in the shell.
# All shell language constructs are valid.
# All stdout and stderr output is captured and passed to abrt
# and possibly to abrt's frontends and shown to the user.
#
# If the program terminates with nonzero exit code,
# the event processing is considered unsuccessful and is stopped.
# Last captured output line, if any, is considered to be
# the error message indicating the reason of the failure,
# and may be used by abrt as such.
#
# If the program terminates successfully, next rule is read
# and processed. This process is repeated until the end of this file.
# Determine in which package/component the crash happened (if not yet done):
EVENT=post-create component= remote!=1
abrt-action-save-package-data
# Example: if you want all users (not just root) to be able to see some problems:
#EVENT=post-create
rm uid; chmod a+rX .
# uid file is missing for problems visible to all users
# (oops scanner is often set up to not create it).
# Record username only if uid element is present:
EVENT=post-create
if [ -f uid ]; then getent passwd "`cat uid`" | cut -d: -f1 >username; fi
# Record runlevel (if not yet done) and don't return non-0 if it fails:
EVENT=post-create runlevel=
runlevel >runlevel 2>&1
exit 0
# Example: if you want to save sosreport immediately at the moment of a crash:
# (alternatively, you can add similar command to EVENT=analyze_foo's,
# if you would rather perform this collection later):
#EVENT=post-create
nice sosreport --tmp-dir "$DUMP_DIR" --batch \
--only=anaconda --only=boot --only=devicemapper \
--only=filesys --only=hardware --only=kernel --only=libraries \
--only=memory --only=networking --only=nfs --only=pam \
--only=process --only=rpm -k rpm.rpmva=off --only=ssh \
--only=services --only=yum --only=date --only=host --only=x11 \
--only=cups --only=logs --only=grub2 --only=cron --only=pci \
--only=auditd --only=selinux --only=lvm2 --only=sar \
--only=processor \
>sosreport.log 2>&1 \
&& {
rm sosreport.log
rm sosreport*.md5
mv sosreport*.tar.bz2 sosreport.tar.bz2
mv sosreport*.tar.xz sosreport.tar.xz
exit 0
} 2>/dev/null
# Error in sosreport run. Let user see the problem.
echo "sosreport run failed with exit code $?, log follows:"
# sosreport prints many useless empty lines, nuke them:
# it looks awful in syslog otherwise.
cat sosreport.log | sed 's/ *$//' | grep -v '^$'
rm sosreport.log
exit 1
# Example: if you want to include *machineid* in dump directories:
EVENT=post-create
/usr/libexec/abrt-action-generate-machine-id -o $DUMP_DIR/machineid >>event_log 2>&1 || :
# Example: if you want to upload data immediately at the moment of a crash:
#EVENT=post-create
reporter-upload -u scp://user:password@server.name/var/spool/abrt-upload || :
#open-gui event is used by abrt-gui's "Edit"->"Open problem data"
EVENT=open-gui
report-gtk -x -- "$DUMP_DIR"
# Notify a new crash
EVENT=notify package!=
abrt-action-notify -d $DUMP_DIR
true # ignore failures because we want to run all 'notify' events
# Notify a new occurrence of a single crash
EVENT=notify-dup package!=
abrt-action-notify -d $DUMP_DIR
true # ignore failures because we want to run all 'notify' events