#!/bin/sh # Send HTTP header for plain text content echo "Content-Type: text/plain" echo "" # Read first CPU statistics read cpu user nice system idle iowait irq softirq steal guest guest_nice < /proc/stat # Record first total usage time and idle time prev_total=$((user+nice+system+idle+iowait+irq+softirq+steal)) prev_idle=$idle # Wait for a short time to capture CPU usage sleep 0.5 # Read second CPU statistics read cpu user nice system idle iowait irq softirq steal guest guest_nice < /proc/stat # Calculate second total usage time total=$((user+nice+system+idle+iowait+irq+softirq+steal)) idle=$idle # Calculate time differences total_diff=$((total-prev_total)) idle_diff=$((idle-prev_idle)) # Calculate CPU usage percentage cpu_usage=$(awk -v total_diff="$total_diff" -v idle_diff="$idle_diff" 'BEGIN{printf "%.1f", (total_diff-idle_diff)*100/total_diff}') # Get memory information mem_info=$(free -m | grep "Mem:") mem_total=$(echo "$mem_info" | awk '{print $2}') mem_used=$(echo "$mem_info" | awk '{print $3}') mem_usage=$(awk "BEGIN {printf \"%.1f\", ($mem_used * 100) / $mem_total}") # Output results echo "CPU Usage: $cpu_usage" echo "Memory Usage: $mem_usage" echo "Memory Total: $((mem_total * 1024 * 1024))" echo "Memory Used: $((mem_used * 1024 * 1024))"