#!/bin/bash LOGFILE="/var/log/cronlog/nvmaer.log" # Define color codes GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # Current date DATE=$(date) LOG_DATE=$(date +"%m/%d/%Y %H:%M") echo "CHECK DATE: $DATE" # Initialize variables exit_code=0 log_entry="" # Function to check errors check_errors() { local error_type="$1" local file_path="$2" echo "Checking for $error_type errors..." # Capture the output of the command errors=$(awk '$2 != 0' "$file_path") # Check if errors is empty if [ -z "$errors" ]; then # No errors found echo -e "${GREEN}PASSED${NC}" log_entry+=" $error_type PASSED" else # Errors detected echo -e "${YELLOW}ERRORS DETECTED!${NC}" echo "$errors" log_entry+=" $error_type ERRORS DETECTED!" log_entry+=$'\n'"$errors" # Set the exit code to indicate problems exit_code=1 fi echo "- - - - - - - - - - - - - - - - - - - -" } # Check for FATAL errors check_errors "FATAL" "/sys/devices/platform/axi/1000110000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/aer_dev_fatal" # Check for NONFATAL errors check_errors "NONFATAL" "/sys/devices/platform/axi/1000110000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/aer_dev_nonfatal" # Check for CORRECTABLE errors check_errors "CORRECTABLE" "/sys/devices/platform/axi/1000110000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/aer_dev_correctable" # Log results if [ $exit_code -eq 0 ]; then # No errors detected echo -e "CHECK $LOG_DATE -- NO ERRORS, ${GREEN}[CHECK PASSED]${NC}" >> "$LOGFILE" else # Errors detected echo "$log_entry" >> "$LOGFILE" fi # Exit with the appropriate exit code exit $exit_code