-
-
Save SoftCreatR/80e89ded130bc082b0a7abec4b6ab92a to your computer and use it in GitHub Desktop.
Minecraft Start / Stop / Update .... Script
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# /etc/init.d/minecraft | |
# Parameter | |
USERNAME='mcserver' | |
MCPATH='/home/mcserver/minecraft/' | |
BACKUPPATH='/opt/backup/' | |
RAM='7168M' | |
FILENAME='spigot-1.13.2.jar' | |
START="java -Xmx$RAM -Xms$RAM -jar $FILENAME" | |
SCREEN='minecraft' | |
COMMAND="$1" | |
PARAMETER="$@" | |
ME=`whoami` | |
DBUSER='bukkit' | |
DB='bukkit' | |
# Ausführen als Bennutzer | |
as_user() { | |
if [ "$ME" == "$USERNAME" ] | |
then | |
bash -c "$1" | |
else | |
su - $USERNAME -c "$1" | |
fi | |
} | |
# Server Starten | |
start() { | |
if ps ax | grep -v grep | grep -v -i SCREEN | grep $FILENAME > /dev/null | |
then | |
echo 'Server läuft bereits' | |
else | |
echo 'Server wird gestartet' | |
as_user "cd $MCPATH && screen -dmS $SCREEN $START" | |
sleep 7 | |
if ps ax | grep -v grep | grep -v -i SCREEN | grep $FILENAME > /dev/null | |
then | |
echo 'Server läuft nun' | |
else | |
echo 'Server konnte nicht gestartet werden' | |
fi | |
fi | |
} | |
# Server Stopen | |
stop() { | |
if ps ax | grep -v grep | grep -v -i SCREEN | grep $FILENAME > /dev/null | |
then | |
echo 'Der Server wird heruntergefahren' | |
if [ "$COMMAND" == 'stop' ] | |
then | |
as_user "screen -p 0 -S $SCREEN -X eval 'stuff \"say Server wird in 10 Sekunden heruntergefahren.\"\015'" | |
else | |
as_user "screen -p 0 -S $SCREEN -X eval 'stuff \"say Server wird in 10 Sekunden neu gestartet.\"\015'" | |
fi | |
as_user "screen -p 0 -S $SCREEN -X eval 'stuff \"save-all\"\015'" | |
sleep 10 | |
as_user "screen -p 0 -S $SCREEN -X eval 'stuff \"stop\"\015'" | |
sleep 20 | |
if ps ax | grep -v grep | grep -v -i SCREEN | grep $FILENAME > /dev/null | |
then | |
echo 'Server konnte nicht heruntergefahren werden' | |
else | |
echo 'Server ist heruntergefahren' | |
fi | |
else | |
echo 'Der Server läuft nicht' | |
fi | |
} | |
# Server Backup | |
backup() { | |
echo "Backup vom Server wird gestartet." | |
if [ -d $BACKUPPATH/`date '+%Y-%m'` ] | |
then | |
echo '' | |
else | |
as_user "mkdir $BACKUPPATH/`date '+%Y-%m'`" | |
fi | |
if [ -f $BACKUPPATH`date '+%Y-%m'`/`date '+%d-%m-%Y'`.tar.gz ] | |
then | |
for i in 1 2 3 4 5 6 7 8 9 10 11 12 | |
do | |
if [ -f $BACKUPPATH`date '+%Y-%m'`/`date '+%d-%m-%Y'`-$i.tar.gz ] | |
then | |
continue | |
else | |
sudo mysqldump --opt -u $DBUSER -p $DB > $MCPATH/backup.sql | |
as_user "cd $BACKUPPATH/`date '+%Y-%m'` && tar -czf `date "+%d-%m-%Y"`-$i.tar.gz $MCPATH" | |
break | |
fi | |
done | |
else | |
sudo mysqldump --opt -u $DBUSER -p $DB > $MCPATH/backup.sql | |
as_user "cd $BACKUPPATH/`date '+%Y-%m'` && tar -czf `date "+%d-%m-%Y"`.tar.gz $MCPATH" | |
echo "Backed up Minecraft" | |
fi | |
echo "Backup vom Server ist Fertig." | |
} | |
# Save OFF | |
saveoff() { | |
if ps ax | grep -v grep | grep -v -i SCREEN | grep $FILENAME > /dev/null | |
then | |
echo 'Server wird gespeichert' | |
as_user "screen -p 0 -S $SCREEN -X eval 'stuff \"say Server wird gespeichert\"\015'" | |
as_user "screen -p 0 -S $SCREEN -X eval 'stuff \"save-off\"\015'" | |
as_user "screen -p 0 -S $SCREEN -X eval 'stuff \"save-all\"\015'" | |
sync | |
sleep 10 | |
else | |
echo 'Server läuft nicht' | |
fi | |
} | |
# Save ON | |
saveon() { | |
if ps ax | grep -v grep | grep -v -i SCREEN | grep $FILENAME > /dev/null | |
then | |
echo 'Server wurde gespeichert' | |
as_user "screen -p 0 -S $SCREEN -X eval 'stuff \"save-on\"\015'" | |
as_user "screen -p 0 -S $SCREEN -X eval 'stuff \"say Server wurde gespeichert\"\015'" | |
else | |
echo 'Server läuft nicht' | |
fi | |
} | |
# Welt Speichern | |
save() { | |
if ps ax | grep -v grep | grep -v -i SCREEN | grep $FILENAME > /dev/null | |
then | |
echo 'Welt wird gespeichert' | |
as_user "screen -p 0 -S $SCREEN -X eval 'stuff \"say Welt wird gespeichert...\"\015'" | |
as_user "screen -p 0 -S $SCREEN -X eval 'stuff \"save-all\"\015'" | |
sleep 5 | |
as_user "screen -p 0 -S $SCREEN -X eval 'stuff \"say Welt wurde gespeichert\"\015'" | |
else | |
echo 'Server läuft nicht' | |
fi | |
} | |
# Server Say | |
say() { | |
if ps ax | grep -v grep | grep -v -i SCREEN | grep $FILENAME > /dev/null | |
then | |
echo 'Nachricht gesendet' | |
# String Replace von "say" | |
MESSAGE=$(echo $PARAMETER|sed 's/say//g') | |
as_user "screen -p 0 -S $SCREEN -X eval 'stuff \"say $MESSAGE \"\015'" | |
else | |
echo 'Server läuft nicht' | |
fi | |
} | |
case "$1" in | |
start) | |
start | |
;; | |
stop) | |
stop | |
;; | |
restart) | |
stop | |
start | |
;; | |
backup) | |
saveoff | |
backup | |
saveon | |
;; | |
save) | |
save | |
;; | |
say) | |
say | |
;; | |
status) | |
if ps ax | grep -v grep | grep -v -i SCREEN | grep $FILENAME > /dev/null | |
then | |
echo "Server läuft." | |
else | |
echo "Server läuft nicht." | |
fi | |
;; | |
*) | |
echo "Benutzung: service $0 {start|stop|restart|save|backup|say|status}" | |
exit 1 | |
;; | |
esac | |
exit 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment