32 lines
1.2 KiB
Bash
32 lines
1.2 KiB
Bash
#!/bin/bash
|
|
|
|
# Run sensors command and store the output
|
|
sensors_output=$(sensors)
|
|
|
|
# Extract temperatures for each CPU and find the highest for each
|
|
cpu1_temps=$(echo "$sensors_output" | awk '/coretemp-isa-0000/ {p=1} /coretemp-isa-0001/ {p=0} p' | awk '/Core/ {print $3}' | sort -n | tail -n 1)
|
|
cpu2_temps=$(echo "$sensors_output" | awk '/coretemp-isa-0001/ {p=1} /i350bb-pci-0103/ {p=0} p' | awk '/Core/ {print $3}' | sort -n | tail -n 1)
|
|
|
|
# Strip out the + and degree symbol from temperatures
|
|
cpu1_temp_value=$(echo "$cpu1_temps" | tr -d '+°' | awk -F '.' '{print $1}')
|
|
cpu2_temp_value=$(echo "$cpu2_temps" | tr -d '+°' | awk -F '.' '{print $1}')
|
|
|
|
|
|
|
|
# Determine the status code based on temperature thresholds
|
|
if [ "$cpu1_temp_value" -ge 95 ] || [ "$cpu2_temp_value" -ge 95 ]; then
|
|
status_code=4
|
|
elif [ "$cpu1_temp_value" -ge 90 ] || [ "$cpu2_temp_value" -ge 90 ]; then
|
|
status_code=3
|
|
elif [ "$cpu1_temp_value" -ge 80 ] || [ "$cpu2_temp_value" -ge 80 ]; then
|
|
status_code=2
|
|
elif [ "$cpu1_temp_value" -ge 70 ] || [ "$cpu2_temp_value" -ge 70 ]; then
|
|
status_code=1
|
|
else
|
|
status_code=0
|
|
fi
|
|
|
|
# Format the final output
|
|
echo "CPU0: ${cpu1_temp_value} | CPU1: ${cpu2_temp_value}"
|
|
|