39 lines
1002 B
Bash
Executable File
39 lines
1002 B
Bash
Executable File
#!/bin/bash
|
|
|
|
# Hourly Tracker Script for OpenClaw Workspace
|
|
# Created: 2026-03-13
|
|
# Purpose: Track CPU, Memory, Disk, and Network Connections
|
|
|
|
LOG_DIR="/home/amr/.openclaw/workspace/memex/7_system/logs"
|
|
LOG_FILE="$LOG_DIR/hourly-stats.log"
|
|
DATE=$(date "+%Y-%m-%d %H:%M:%S")
|
|
|
|
mkdir -p "$LOG_DIR"
|
|
|
|
log_stats() {
|
|
# 1. CPU
|
|
CPU_LOAD=$(top -bn1 | grep "Cpu(s)" | awk '{print $2 + $4}')
|
|
|
|
# 2. Memory
|
|
MEM_USAGE=$(free -m | awk 'NR==2{printf "%.2f%%", $3*100/$2 }')
|
|
|
|
# 3. Load average
|
|
LOAD_AVG=$(uptime | awk -F'load average:' '{ print $2 }' | xargs)
|
|
|
|
# 4. Disk (/)
|
|
DISK_USAGE=$(df -h / | awk 'NR==2 {print $5}')
|
|
|
|
# 5. Network connections
|
|
NET_CONNS=$(netstat -an | grep ESTABLISHED | wc -l)
|
|
|
|
echo "[$DATE] CPU: $CPU_LOAD%, MEM: $MEM_USAGE, LOAD: $LOAD_AVG, DISK: $DISK_USAGE, NET: $NET_CONNS" >> "$LOG_FILE"
|
|
}
|
|
|
|
cleanup_logs() {
|
|
# 6. Auto-cleanup logs older than 30 days
|
|
find "$LOG_DIR" -type f -mtime +30 -delete
|
|
}
|
|
|
|
log_stats
|
|
cleanup_logs
|