Notes fanzru's shorts
Date 12 / 22 / 2024
E = mc²
∇²Ψ + V(x)Ψ = EΨ
∫f(x)dx
Back to Shorts
ubuntumonitoringsystemperformance

Ubuntu System Monitoring

987 views

System Resources

bash
# CPU and memory usage
htop

# Alternative to htop
top

# Memory usage
free -h

# Disk usage
df -h

# Inode usage
df -i

# Disk usage by directory
du -sh /* 2>/dev/null | sort -hr

Process Management

bash
# Running processes
ps aux

# Process tree
pstree

# Kill process by PID
kill -9 <PID>

# Kill process by name
pkill -f "process_name"

# Find process using port
sudo netstat -tulpn | grep :3000
sudo lsof -i :3000

Network Monitoring

bash
# Network interfaces
ip addr show

# Network connections
ss -tulpn

# Active connections
netstat -tulpn

# Network traffic
iftop

# Install iftop
sudo apt install iftop -y

System Information

bash
# System info
uname -a

# CPU info
lscpu

# Memory info
cat /proc/meminfo

# Disk info
lsblk

# System uptime
uptime

# Load average
cat /proc/loadavg

Log Monitoring

bash
# System logs
sudo journalctl -f

# Specific service logs
sudo journalctl -u nginx -f

# Last 100 lines
sudo journalctl -n 100

# Logs from today
sudo journalctl --since today

# Error logs only
sudo journalctl -p err

Quick Monitoring Script

Create ~/monitor.sh:

bash
#!/bin/bash
echo "=== System Status ==="
echo "Uptime: $(uptime)"
echo "Load: $(cat /proc/loadavg)"
echo "Memory: $(free -h | grep Mem)"
echo "Disk: $(df -h / | tail -1)"
echo "=== Top Processes ==="
ps aux --sort=-%cpu | head -5

Make executable:

bash
chmod +x ~/monitor.sh

Useful Aliases

Add to ~/.bashrc:

bash
alias mem="free -h"
alias disk="df -h"
alias ports="sudo netstat -tulpn | grep LISTEN"
alias myip="curl -s ifconfig.me"
alias logs="sudo journalctl -f"
alias monitor="~/monitor.sh"

Keep your VM healthy! 📊