Cita Iniciado por Cuoco Ver Mensaje
Hola estimado, creo que pude replicar el problema, al intentar ejecutar tu escript en la consola me arrojaba la misma salida en el log que la que te arroja desde cron.
Ejecuté las instrucciones y variables y encontré la discrepancia en el comando bc y la salida del comando top.
En mi pc tengo todo configurado para usar español, la salida del comando top te arroja un numero decimal utilizando coma "," y el comando bc no reconoce dicho formato de números decimales, espera en su lugar un punto "."
Esto te arroja el primer error en la linea y=$(echo "$x*$factor"|bc) y eso arrastra los problemas más abajo.
La solución que se me ocurrió fue formatear la salida de la variable x y cambiar coma por punto, eso terminó el comando correctamente.
Lo que se me ocurre que puede estar pasando es una discrepancia de los locale utilizados, tu usuario tiene español y cron utiliza el de sistema (ingles), o a la inversa, eso es lo que cambia la salida del comando top para que use punto o coma, para expresar los valores decimales.
Adjunto el script modificado para que lo pruebes.
Código:
#!/bin/bash

fecha=$(date +%d-%m-%Y*%T)
factor=10
base=150
#ejecuto top de manera estatica y con grep separo la lina de uso de %cpu y con AWK aislo unicamente el uso del cpu 
q=$(top -b -n 1 | grep %Cpu | awk '{usage=$2} END {print usage}')
#cambiamos la coma por el punto para que sea leido correctamente por el comando bc
x=`echo $q | sed 's/,/./g'`
echo el porcetanje de uso del cpu es: $x % >> /home/gechdell/Documentos/scripts/log.txt

#multiplico el valor de %cpu por 10 para convertir un decimal a entero, pero aun conserva el .0
y=$(echo "$x*$factor"|bc)
echo multiplicado es $y % >> /home/gechdell/Documentos/scripts/log.txt

#quito el .0 para quedarme con un numero sin punto decimal
z=${y/.*/}
echo sin decimales es $z >> /home/gechdell/Documentos/scripts/log.txt
echo este $z es mayor que $base >> /home/gechdell/Documentos/scripts/log.txt

#comparo el uso de CPU ya convertido a entero y sin punto decimal con mi base para saber si el uso del cpu es alto o no
if [ $z -gt $base ];
then
echo el uso del cpu es alto $x %  a las $fecha >> /home/gechdell/Documentos/scripts/log.txt
else
echo el uso del cpu es normal $x % a las $fecha >> /home/gechdell/Documentos/scripts/log.txt
fi
Saludos.


exacto, ese era el GRAN DETALLE lo corregi y funciono al 100 muchas gracias, bien recuerdo en mis dias de estudiante como un ; hacia que todo tu codigo no compilara y ahora por no fijarme en un , me paso lo mismo


me podrian ayudar para cambiar el titulo con SOLUCIONADO