To develop a Unix shell script to monitor system resources (CPU, memory, disk usage) on multiple Unix servers

Biswanath Giri
2 min readJul 14, 2024

--

#!/bin/bash

# Define thresholds
CPU_THRESHOLD=80
MEM_THRESHOLD=80
DISK_THRESHOLD=80

# Define list of servers
SERVERS=("server1" "server2" "server3")

# Define alert function
send_alert() {
local message=$1
echo "Alert: $message" | mail -s "Resource Alert" your_email@example.com
}

# Function to check resources on a server
check_resources() {
local server=$1

# Get CPU usage
CPU_USAGE=$(ssh $server "top -bn1 | grep 'Cpu(s)' | sed 's/.*, *\([0-9.]*\)%* id.*/\1/' | awk '{print 100 - \$1}'")

# Get Memory usage
MEM_USAGE=$(ssh $server "free | grep Mem | awk '{print \$3/\$2 * 100.0}'")

# Get Disk usage
DISK_USAGE=$(ssh $server "df / | grep / | awk '{print \$5}' | sed 's/%//'")

# Check CPU usage
if (( $(echo "$CPU_USAGE > $CPU_THRESHOLD" | bc -l) )); then
send_alert "CPU usage on $server is above threshold: ${CPU_USAGE}%"
fi

# Check Memory usage
if (( $(echo "$MEM_USAGE > $MEM_THRESHOLD" | bc -l) )); then
send_alert "Memory usage on $server is above threshold: ${MEM_USAGE}%"
fi

# Check Disk usage
if (( $DISK_USAGE > $DISK_THRESHOLD )); then
send_alert "Disk usage on $server is above threshold: ${DISK_USAGE}%"
fi
}

# Iterate over the list of servers and check resources
for server in "${SERVERS[@]}"; do
check_resources $server
done

Option -2

#!/bin/bash

# Define thresholds (adjust as needed)
cpu_threshold=80
memory_threshold=85
disk_threshold=90

# Server list (replace with your server IPs)
server_list=(server1 server2 server3)

for server in "${server_list[@]}"; do
# Get server info
server_info=$(get_server_info "$server")

# Extract resource usage
cpu_usage=$(echo "$server_info" | grep CPU | awk '{print $2}')
memory_usage=$(echo "$server_info" | grep Mem | awk '{print $3}')
disk_usage=$(echo "$server_info" | grep root | awk '{print $5}')

# Check and send alerts
check_cpu_usage "$cpu_usage"
check_memory_usage "$memory_usage"
check_disk_usage "$disk_usage"

done

--

--

Biswanath Giri
Biswanath Giri

Written by Biswanath Giri

Cloud & AI Architect | Empowering People in Cloud Computing, Google Cloud AI/ML, and Google Workspace | Enabling Businesses on Their Cloud Journey

No responses yet