Skip to content

Instantly share code, notes, and snippets.

@MOZGIII
Last active June 17, 2023 22:14
Show Gist options
  • Save MOZGIII/4529750 to your computer and use it in GitHub Desktop.
Save MOZGIII/4529750 to your computer and use it in GitHub Desktop.
Minecraft Server Pinger for server hang detection written on Bash
#!/bin/bash
# Minecraft Server Pinger
#
# If the server is pining successfully exits with 1,
# else (if server hangs) exits with 0.
HOST=$1
PORT=$2
if [[ "x$HOST" == "x" || "x$PORT" == "x" ]]; then
echo "Usage: $0 host port"
exit 1
fi
VAL=$(( echo -n -e "\xFE\x01"; sleep .5) | nc $HOST $PORT | wc -m)
if [[ $VAL -gt 2 ]]; then
echo Server is ok!
exit 1
else
echo FAIL
exit 0 # allow chained script to work, use it like this: pinger && /etc/init.d/mc restart
fi
@kreezxil
Copy link

nc is not distributed by default with some Linux distributions, you might want to specify at least an open source location for it. But most definitely a Debian location for it as Deb systems are the most common.

@kreezxil
Copy link

I found it, nc, comes from the package netcat. For Debian systems you can get it with "apt-get install netcat"

@johnstcn
Copy link

Handy script. Consider specifying a timeout to nc e.g. nc -w10 $HOST $PORT.

@MOZGIII
Copy link
Author

MOZGIII commented Jun 17, 2023

Damn, this is ancient 😄

@johnstcn
Copy link

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment