Controleer snel of een poort in gebruik is en welk proces er op luistert. Geeft een overzicht van alle bezette poorten als je geen argument meegeeft.
#!/bin/bash
# poort-check.sh — controleer of een poort in gebruik is
#
# Gebruik:
# ./poort-check.sh # toon alle luisterende poorten
# ./poort-check.sh 3000 # controleer poort 3000
# ./poort-check.sh 3000 8080 # controleer meerdere poorten
set -euo pipefail
controleer_poort() {
local poort="$1"
local pid
pid=$(fuser "${poort}/tcp" 2>/dev/null || true)
if [[ -z "$pid" ]]; then
echo " ✓ poort ${poort} — vrij"
else
local info
info=$(ps -p "$pid" -o comm=,args= 2>/dev/null | head -1)
echo " ✗ poort ${poort} — bezet door PID ${pid}: ${info}"
fi
}
if [[ $# -eq 0 ]]; then
echo "Alle luisterende TCP-poorten:"
echo "------------------------------"
ss -tlpn | awk 'NR>1 {
split($4, a, ":")
port = a[length(a)]
match($6, /pid=([0-9]+)/, m)
pid = m[1]
cmd = ""
if (pid) { ("ps -p " pid " -o comm= 2>/dev/null") | getline cmd }
printf " %-7s PID %-6s %s\n", port, pid, cmd
}'
else
echo "Poortcontrole:"
for poort in "$@"; do
controleer_poort "$poort"
done
fi
chmod +x poort-check.sh
./poort-check.sh # alle bezette poorten
./poort-check.sh 3000 # is poort 3000 vrij?
./poort-check.sh 80 443 8080 # meerdere poorten tegelijk
$ ./poort-check.sh 3000 8080 22
Poortcontrole:
✗ poort 3000 — bezet door PID 12345: mdserver
✓ poort 8080 — vrij
✗ poort 22 — bezet door PID 812: sshd
Snel in een script gebruiken (zie ook fuser):
fuser 3000/tcp 2>/dev/null || echo "Poort 3000 vrij"