From 8dbaf6c412dd555e8776bf7ff139d35d6782567f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?O=2E=20S=C3=A1nchez?= Date: Fri, 15 Sep 2023 19:31:42 -0600 Subject: [PATCH] temp.sh: Script nuevo Script que sirve para monitorizar temperatura del procesador --- varios/temp.sh | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 varios/temp.sh diff --git a/varios/temp.sh b/varios/temp.sh new file mode 100644 index 0000000..b686e3a --- /dev/null +++ b/varios/temp.sh @@ -0,0 +1,55 @@ +#!/bin/sh +# +# v0.1 - 15/09/2023 +# +# Script que calcula la temperatura promedio del procesador leyendo la información +# disponible en el directorio /sys/class, esta información es proporcionada por +# el kernel. +# El script realiza los cálculos apoyándose de herramientas del sistema y builtin +# del shell. +# +# Dependencias: cat bc +# +# Shell: POSIX compliant +# Autor: O. Sánchez + +# Directorio base donde se encuentran los archivos "temp" +base_dir="/sys/class/thermal" + +# Inicializar variables para la suma y el contador +suma=0 +contador=0 + +# Iterar sobre los directorios "thermal_zone*" +for dir in "$base_dir"/thermal_zone*; do + if [ -d "$dir" ]; then + # Verificar si el archivo "temp" existe en el directorio + temp_file="$dir/temp" + if [ -f "$temp_file" ]; then + # Leer el contenido del archivo "temp" y agregarlo a la suma + temp_value=$(cat "$temp_file") + suma=$((suma + temp_value)) + contador=$((contador + 1)) + fi + fi +done + +# Calcular el promedio en enteros +if [ "$contador" -gt 0 ]; then + promedio_enteros=$((suma / (contador * 1000))) + + # Calcular el promedio en decimal (con decimales) + promedio_decimal=$(echo "scale=2; $suma / ($contador * 1000)" | bc) + + # Comprobar si el promedio tiene decimales y mostrarlo en consecuencia + if [ "$promedio_enteros" -eq "$promedio_decimal" ]; then + echo "${promedio_enteros##.*}" + exit 0 + else + echo "$promedio_decimal" + exit 0 + fi +else + echo "No se encontraron archivos 'temp' en los directorios 'thermal_zone*'." + exit 10 +fi