VPS OS health, network speed test, disk, RAM, CPU, uptime, process snapshot
Install to Claude Code
npx -y skills add ariffazil/arifOS --skill os-health --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Os Health?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/ariffazil-os-health)More formats (shields.io, HTML) on the badges page.
---
name: os-health
description: VPS OS health, network speed test, disk, RAM, CPU, uptime, process snapshot
user-invocable: true
---
# OS Health & Speedtest — arifOS_bot
Triggers: "speedtest", "network speed", "how fast is my VPS", "os health", "system check",
"cpu usage", "memory usage", "disk space", "uptime", "processes", "top processes",
"is VPS slow", "latency", "ping", "bandwidth", "vps performance"
---
## Full Health Snapshot (run all at once)
```bash
echo "=== $(date) ===" && \
echo "--- UPTIME ---" && uptime && \
echo "--- CPU ---" && grep -c ^processor /proc/cpuinfo && cat /proc/loadavg && \
echo "--- RAM ---" && free -h && \
echo "--- DISK ---" && df -h / && \
echo "--- CONTAINERS ---" && docker ps --format "table {{.Names}}\t{{.Status}}" 2>/dev/null && \
echo "--- arifOS ---" && curl -sf http://arifosmcp:8080/health | python3 -c "import sys,json; d=json.load(sys.stdin); print(f\"status={d['status']} tools={d.get('tools_loaded','?')}\")" 2>/dev/null
```
---
## Network Speed Test
### Download speed (Cloudflare — no install needed)
```bash
# 10MB test file from Cloudflare
SPEED=$(curl -s -o /dev/null -w "%{speed_download}" \
"https://speed.cloudflare.com/__down?bytes=10000000" --max-time 15)
echo "Download: $(echo "scale=1; ${SPEED}/1048576" | bc) MB/s"
```
### Latency to key endpoints
```bash
for HOST in 1.1.1.1 8.8.8.8 api.anthropic.com api.moonshot.cn; do
RTT=$(curl -s -o /dev/null -w "%{time_connect}s" "https://${HOST}" --max-time 5 2>/dev/null || echo "timeout")
echo "${HOST}: ${RTT}"
done
```
### Upload speed (to your own VPS — internal)
```bash
# From container to arifOS MCP endpoint
dd if=/dev/urandom bs=1M count=5 2>/dev/null | \
curl -s -X POST http://arifosmcp:8080/health \
-H "Content-Type: application/octet-stream" \
--data-binary @- -o /dev/null -w "upload: %{speed_upload} B/s\n"
```
### Quick ping test (DNS resolution speed)
```bash
for HOST in arifosmcp headless_browser qdrant ollama_engine arifos-postgres; do
TIME=$(curl -sf -o /dev/null -w "%{time_namelookup}+%{time_connect}" http://${HOST} 2>/dev/null || echo "unreachable")
echo "${HOST}: ${TIME}s"
done
```
---
## CPU & Process Analysis
```bash
# Top CPU consumers
ps aux --sort=-%cpu | head -10
# Top memory consumers
ps aux --sort=-%mem | head -10
# CPU info
nproc && cat /proc/loadavg
# Check if load is high
LOAD=$(cat /proc/loadavg | cut -d' ' -f1)
CORES=$(nproc)
echo "Load: ${LOAD} / ${CORES} cores"
# If load > cores: system under pressure
```
---
## Disk Analysis
```bash
# Overall usage
df -h
# Find disk hogs (top 10 largest dirs)
du -h / --max-depth=3 2>/dev/null | sort -rh | head -10
# Docker-specific disk usage
docker system df
# Ollama model sizes
docker exec ollama_engine du -sh /root/.ollama/models/ 2>/dev/null
# Log sizes
du -sh /opt/arifos/data/openclaw/logs/ /var/log/ 2>/dev/null
```
## Disk Alert Thresholds
```bash
USED=$(df / | awk 'NR==2{print $5}' | tr -d '%')
if [ "$USED" -gt 85 ]; then
echo "DISK_CRITICAL: ${USED}% — immediate cleanup required"
echo "Run: docker builder prune -f && docker image prune -f"
elif [ "$USED" -gt 75 ]; then
echo "DISK_WARNING: ${USED}% — monitor closely"
else
echo "DISK_OK: ${USED}%"
fi
```
---
## RAM Analysis
```bash
# Full memory breakdown
free -h
# Per-container memory (sorted)
docker stats --no-stream --format "{{.Name}}: {{.MemUsage}} ({{.MemPerc}})" | sort -t'/' -k1 -rh
# Check if swap is being used (bad sign on this VPS)
free -h | grep Swap
# >100MiB swap used → RAM pressure, check which container to limit
```
---
## Network Interface Stats
```bash
# Bytes in/out since boot
cat /proc/net/dev | awk 'NR>2 {printf "%s: RX=%.1fMB TX=%.1fMB\n", $1, $2/1048576, $10/1048576}' | grep -v "lo:"
# Active connections count
ss -s 2>/dev/null || netstat -s 2>/dev/null | grep "connections" | head -5
```
---
## OS Info
```bash
uname -a
cat /etc/os-release | grep -E "^(NAME|VERSION)="
# CPU model
grep "model name" /proc/cpuinfo | head -1 | cut -d: -f2 | xargs
# VPS host
curl -sf http://169.254.169.254/latest/meta-data/instance-type 2>/dev/null || echo "Not AWS (KVM VPS)"
```
---
## Auto-Heal Actions (within autonomous authority)
```bash
# Disk >80% — safe cleanup
docker builder prune -f
docker image prune -f --filter "dangling=true"
journalctl --vacuum-size=200M 2>/dev/null
# Container OOM-killed — restart it
docker compose -f /mnt/arifos/docker-compose.yml up -d <container_name>
# High load — identify and report (don't kill without F13)
ps aux --sort=-%cpu | head -5
# → Report to Arif before killing unknown processes
```
---
## Log to Audit
```bash
echo "{\"ts\":\"$(date -u +%Y-%m-%dT%H:%M:%SZ)\",\"event\":\"os_health_check\",\"disk_pct\":\"$(df / | awk 'NR==2{print $5}')\",\"load\":\"$(cat /proc/loadavg | cut -d' ' -f1)\",\"agent\":\"arifOS_bot\"}" \
>> ~/.openclaw/workspace/logs/audit.jsonl
```
*arifOS_bot — OS health + network diagnostics*
Scanned 9/13/2026
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!