MC Server MGMT
MC SERVER INSTALLATION
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt update
sudo apt install openjdk-17-jre-headless
sudo apt install screen
sudo ufw allow 25565
java -Xms1024M -Xmx1024M -jar <server.jar> nogui // xms4G - specify starting ram (can use M for Mb and G for Gb); Xmx4G - maximum server ram
cd /home/mcadmin/server_1_21_4/
screen
java -Xms6G -Xmx6G -jar server_1_21_5.jar nogui // server start
ctrl+A then D // detach the window
screen -r // reattach the window
stop // stops MC server
nano eula.txt -> eula=true
nano server.properties // server settings (for cracked clients - online-mode=false)
using screen:
screen // starts a new session
screen -S <name> // name a session
screen -r <name or id> // reattach a screen
screen -ls // list screens
screen -X -S <name or id> quit // quit a session
screen -wipe // kill all screens
ctrl+A then D // detach a screen but keep it running
ctrl+A then C // create window
ctrl+A then N // next window
ctrl+A then P // previous window
ctrl+A then K // kill window
pkill screen // kills all screens
SERVER MANAGEMENT
# help // v konzoli ukaže příkazy
# op <playername> // admin
*************************************
wget https://piston-data.mojang.com/v1/objects/4707d00eb834b446575d89a61a11b5d548d8c001/server.jar
wget https://piston-data.mojang.com/v1/objects/e6ec2f64e6080b9b5d9b471b291c33cc7f509733/server.jar
-----------------------------
backup:
tar -czvf server_1_21_5_BACKUP.tar.gz server_1_21_5
-----------------------------
LOG + MAIL:
#!/bin/bash
# Path to your log file
LOG_FILE="/home/mcadmin/server_1_21_5/logs/latest.log"
# Your email settings
FROM="origin@server.com"
TO="destination@server.com"
# Monitor the file for changes
inotifywait -m -e modify "$LOG_FILE" | while read -r filename event; do
# Read the last 1 line
last_lines=$(tail -n 1 "$LOG_FILE")
# Extract lines that contain an IP address
ip_lines=$(echo "$last_lines" | grep -E '([0-9]{1,3}\.){3}[0-9]{1,3}')
# If any lines with IPs were found, send an email
if [[ -n "$ip_lines" ]]; then
echo -e "From: $FROM\nTo: $TO\nSubject: Login Detected on MC Server\n\nLog Lines:\n$ip_lines" | msmtp -t
fi
done
-----------------
nohup ./<script>.sh &
ps -aux | grep <script>
kill <pid>
/etc/systemd/system/mc-login-monitor.service
#!/bin/bash
logfile="/home/mcadmin/server_1_21_5/logs/latest.log"
log_monitor_output="/home/mcadmin/mc_login_notify_debug.log"
watch_log() {
while true; do
if [ -f "$logfile" ]; then
echo "$(date): Watching $logfile" >> "$log_monitor_output"
inotifywait -e modify "$logfile" |
while read path _ file; do
tail -n 1 "$logfile" | while read line; do
echo "$(date): Line: $line" >> "$log_monitor_output"
if echo "$line" | grep -q "logged in"; then
echo "$(date): Sending email for login line" >> "$log_monitor_output"
echo -e "$line" | mail -s "Login Detected on MC Server" destination.email@server.com
else
echo "$(date): Not a login line" >> "$log_monitor_output"
fi
done
done
else
echo "$(date): Log file not found" >> "$log_monitor_output"
fi
sleep 2
done
}
watch_log