0

How to write script monitoring cpu and memory usage then prints a warning when usage is 70% (red warning)?

EDIT:

cpuUsage=$(top -bn1 | awk '/Cpu/ { print $2}')
memUsage=$(free -m | awk '/Mem/{print $3}')
echo "CPU Usage: $cpuUsage%"
echo "Memory Usage: $memUsage%"
if [ "$cpuUsage" -ge 70]; then
echo -e "The system is not utilizing"

It keeps giving me 0% usage of CPU and message isn't printed

1 Answers1

1

Python:

#!/usr/bin/env python3
import psutil
import time

threshold = 70 # percent

def beep(): print('*[ BEEP ]*')

while(1): cpu_pc = psutil.cpu_percent() mem_pc = psutil.virtual_memory().percent print(f'cpu: {cpu_pc}%; mem: {mem_pc}%') if cpu_pc >= threshold or mem_pc >= threshold: beep()

time.sleep(0.5)

Bash:

cpuUsage=$(top -bn1 | awk '/Cpu/ { print $2}')
memTotal=$(free -m | awk '/Mem/{print $2}')
memUsage=$(free -m | awk '/Mem/{print $3}')
memUsage=$(( (memUsage * 100) / memTotal ))
echo "CPU Usage: $cpuUsage%"
echo "Memory Usage: $memUsage%"
if (( $(echo "$cpuUsage >= 70" |bc -l) )); then
  echo -e "The system is not utilizing"
fi

For example, on my nettop, the second solution produced this:

zenbooster@zenpc:~$ ./usage.sh
CPU Usage: 1.2%
Memory Usage: 63%