# 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