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! 📊