#!/bin/bash # # # Original script: # https://bitbucket.org/darkfader/nagios/src/ # c9dbc15609d0/check_mk/edac/plugins/edac?at=default # The best stop for all things EDAC is # http://buttersideup.com/edacwiki/ and # edac.txt in the kernel doc. # EDAC memory reporting if [ -d /sys/devices/system/edac/mc ]; then host_str=`hostname` output_str="$host_str,`date +%s`" # Iterate all memory controllers i=-1 for mc in /sys/devices/system/edac/mc/* ; do i=$((i+1)) output_str="$output_str,mc$i" ue_total_count=0 ce_total_count=0 # Iterate all csrow values j=-1 for csrow in $mc/csrow* ; do j=$((j+1)) output_str="$output_str,csrow$j" ue_count=`more $csrow/ue_count` ce_count=`more $csrow/ce_count` dimm_size=`more $csrow/size_mb` if [ "$ue_count" -gt 1 ]; then ue_total_count=ue_total_count+$ue_count; fi if [ "$ce_count" -gt 1 ]; then ce_total_count=ce_total_count+$ce_count; fi output_str="$output_str,$dimm_size,$ce_count,$ue_count" done #echo " UE count is $ue_total_count on memory controller $mc " #echo " CE count is $ce_total_count on memory controller $mc " done echo "$output_str" >> /tmp/file.txt fi