You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

70 lines
1.4 KiB

#!/bin/bash -fu
#
# Hook to write file report instead of sending email
#
CONFIG_HOST="$1"
CONFIG_PATH="$2"
CONFIG_TASK="$3"
CONFIG_DATE="$4"
CONFIG_FILE="$5"
HOOK_NAME="$6"
HOOK_TYPE="$7"
HOOK_TASK="$8"
HOOK_CTID="$9"
# ---
source "$CONFIG_FILE"
if [[ "$CONFIG_TASK" == "openvz-diff-backup" ]]; then
LOG_FILE="$CONFIG_PATH/var/log/ovzdb.log"
else
LOG_FILE="$CONFIG_PATH/var/log/ovzdb_${CONFIG_TASK}.log"
fi
# ---
if [[ -n "${!LOG_FILE[@]}" ]] && [[ -f "$LOG_FILE" ]]; then
# --- Set report file
REPORT_FILE="$SERVER_TMP_DIR/${CALLER_TASK}_${HOOK_TASK}_${HOOK_CTID}_error-report.flag"
# --- Splash
echo "
######################################
# Error report - openvz-diff-backups #
######################################
Oops, something went wrong. *Read this report or a kitten will die*.
(please, do not panic and fill a bug report if necessary)" >> "$REPORT_FILE"
# --- Create report
echo -e "\n# --- $LOG_FILE\n" >> "$REPORT_FILE"
if [[ -s "$LOG_FILE" ]]; then
tac "$LOG_FILE" | grep -B 8192 -P -m 1 "\s*Info\s*\-\s*openvz\-diff\-backups\s*\d\.\d\.\d" | tac >> "$REPORT_FILE"
fi
echo -e "\n# --- /var/log/vzctl.log\n" >> "$REPORT_FILE"
if [[ -s "/var/log/vzctl.log" ]]; then
tail -n 50 "/var/log/vzctl.log" >> "$REPORT_FILE"
fi
echo -e "\n# --- /var/log/kern.log\n" >> "$REPORT_FILE"
if [[ -s "/var/log/kern.log" ]]; then
tail -n 50 "/var/log/kern.log" >> "$REPORT_FILE"
fi
# --- Exit
exit 0
fi