Created
April 4, 2011 06:41
-
-
Save surtic86/901213 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='bukkit' | |
MCPATH='/opt/minecraft/' | |
BACKUPPATH='/opt/backup/' | |
RAM='1G' | |
FILENAME='craftbukkit-0.0.1-SNAPSHOT.jar' | |
START="java -Xincgc -Xmx$RAM -jar $FILENAME" | |
SCREEN='minecraft-01' | |
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 craftbukkit-0.0.1-SNAPSHOT.jar > /dev/null | |
then | |
echo "Server läuft." | |
else | |
echo "Server läuft nicht." | |
fi | |
;; | |
*) | |
echo "Benutzung: service minecraft {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
Hi,
danke für das klasse Script.
In Zeile 192 solltest du
craftbukkit-0.0.1-SNAPSHOT.jar
durch$FILENAME
ersetzen.Gruß
Banana-Joe