diff --git a/simpleadmin/www/cgi-bin/get_system_stats b/simpleadmin/www/cgi-bin/get_system_stats new file mode 100644 index 0000000..4049e9f --- /dev/null +++ b/simpleadmin/www/cgi-bin/get_system_stats @@ -0,0 +1,41 @@ +#!/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))" \ No newline at end of file