Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Author: Tealk
- # Last Modification: 25.03.2011
- #Einstellung Serveranzahl 1=Ein Server 2=Zwei Server
- SERVER="2"
- #Updatet Minecraft und Bukkit, kann zu bugs mit den Plugin führen, nur ohne CraftBukkitUpToDate aktivieren 1=An 2=Aus
- MCUPDATE="0"
- #Updatet Bukkit, funktioniert nur mit CraftBukkitUpToDate 1=An 2=Aus
- CRAFTBUKKITUPTODATEB="1"
- #Updatet Plugins, funktioniert nur mit CraftBukkitUpToDate 1=An 2=Aus
- CRAFTBUKKITUPTODATEP="1"
- #Löscht Backups die älter als x Tage sind
- BKUPOLD="1"
- #Hier die anzahl der Tage einstellen
- BKUPOLDT="14"
- #Pfad des ersten Servers
- DIR1="/home/minecraft/build"
- #Pfad des 2ten Servers
- DIR2="/home/minecraft/rp"
- #Pfad für die Backups
- BKUP="/home/minecraft/backup"
- #Bitte unverändert lassen
- DAEMON="java"
- #-Xms Minimaler Arbeitsspeicher -Xmx Maximaler Arbeitsspeicher
- PARAMS="-Xms32m -Xmx3072M -jar"
- #Bitte unverändert lassen
- DATA="craftbukkit.jar"
- #Bitte unverändert lassen
- PARAMS2="nogui"
- #Downloadpfad Bukkit
- DLBUKKIT="http://ci.bukkit.org/job/dev-CraftBukkit/lastStableBuild/artifact/target/craftbukkit-0.0.1-SNAPSHOT.jar"
- #Screen Name erster Server
- NAME1="mcserverb"
- #Screen Name 2ter Server
- NAME2="mcserverrp"
- #Beschreibung erster Server
- DESC1="Minecraft Build Server"
- #Beschreibung 2ter Server
- DESC2="Minecraft RP Server"
- case "$1" in
- start1)
- if [[ `screen -ls |grep $NAME1` ]]; then
- echo "found running prozess: $DESC1"
- echo "Dont start the Server twice"
- exit 1
- else
- if [ "$UID" = "0" ]; then
- echo WARNING ! For security reasons we advise: DO NOT RUN THE SERVER AS ROOT
- for c in $(seq 1 5); do
- echo -n "!"
- sleep 1
- done
- echo !
- fi
- echo "starting the $DESC1"
- if [ -e $DIR1 ];then
- if [ -x $DIR1 ]; then
- cd $DIR1
- if [ ! -x $DATA ]; then
- echo "$DATA is not executable, trying to set it"
- chmod u+x $DATA
- else
- screen -d -m -S $NAME1 $DAEMON $PARAMS $DATA $PARAMS2
- fi
- else
- echo "No such directory: $DIR1!"
- fi
- fi
- fi
- ;;
- stop1)
- if [[ `screen -ls |grep $NAME1` ]]; then
- echo -n "Stopping $DESC1"
- screen -dr $NAME1 -X stuff "say Server will restart now. Please dissconnect!"
- screen -dr $NAME2 -X stuff $'\n'
- screen -dr $NAME1 -X stuff "save-all"
- screen -dr $NAME1 -X stuff $'\n'
- for c in $(seq 1 5); do
- echo -n "."
- sleep 5
- done
- screen -r $NAME1 -X quit
- echo " done."
- cd $DIR1
- rm server.log
- sleep 1
- else
- echo "Coulnd't find a running $DESC1"
- fi
- ;;
- restart1)
- $0 stop1 && $0 start1 || exit 1
- ;;
- start2)
- if [[ `screen -ls |grep $NAME2` ]]; then
- echo "found running prozess: $DESC2"
- echo "Dont start the Server twice"
- exit 1
- else
- if [ "$UID" = "0" ]; then
- echo WARNING ! For security reasons we advise: DO NOT RUN THE SERVER AS ROOT
- for c in $(seq 1 5); do
- echo -n "!"
- sleep 1
- done
- echo !
- fi
- echo "starting the $DESC2"
- if [ -e $DIR2 ];then
- if [ -x $DIR2 ]; then
- cd $DIR2
- if [ ! -x $DATA ]; then
- echo "$DATA is not executable, trying to set it"
- chmod u+x $DATA
- else
- screen -d -m -S $NAME2 $DAEMON $PARAMS $DATA $PARAMS2
- fi
- else
- echo "No such directory: $DIR2!"
- fi
- fi
- fi
- ;;
- stop2)
- if [[ `screen -ls |grep $NAME2` ]]; then
- echo -n "Stopping $DESC2"
- screen -dr $NAME2 -X stuff "say Server will restart now. Please dissconnect!"
- screen -dr $NAME2 -X stuff $'\n'
- screen -dr $NAME2 -X stuff "save-all"
- screen -dr $NAME2 -X stuff $'\n'
- for c in $(seq 1 5); do
- echo -n "."
- sleep 5
- done
- screen -r $NAME2 -X quit
- echo " done."
- cd $DIR2
- rm server.log
- sleep 1
- else
- echo "Coulnd't find a running $DESC2"
- fi
- ;;
- restart2)
- $0 stop2 && $0 start2 || exit 1
- ;;
- restartb)
- if [ "$SERVER" = "2" ]; then
- $0 stop1 && $0 start1 && $0 stop2 && $0 start2 || exit 1
- else
- $0 stop1 && $0 start1 || exit 1
- fi
- ;;
- status)
- if [ "$SERVER" = "2" ]; then
- if [[ `screen -ls |grep $NAME1` ]]; then
- echo "found running prozess: $DESC1"
- else
- echo "no running prozess: $DESC1"
- fi
- if [[ `screen -ls |grep $NAME2` ]]; then
- echo "found running prozess: $DESC2"
- else
- echo "no running prozess: $DESC2"
- fi
- else
- if [[ `screen -ls |grep $NAME1` ]]; then
- echo "found running prozess: $DESC1"
- else
- echo "no running prozess: $DESC1"
- fi
- fi
- exit 1
- ;;
- update)
- if [ "$SERVER" = "2" ]; then
- if [ ! -d $BKUP ]; then
- mkdir $BKUP
- fi
- echo "Backing up current binaries..."
- DATE=$(date +%d-%m-%Y)
- cd $DIR1
- tar -czf minecraft_server_1-$DATE.tar.gz plugins/* craftbukkit.jar server.log
- mv minecraft_server_1-$DATE.tar.gz $BKUP
- cd $DIR2
- tar -czf minecraft_server_2-$DATE.tar.gz plugins/* craftbukkit.jar server.log
- mv minecraft_server_2-$DATE.tar.gz $BKUP
- echo "done"
- if [ "$CRAFTBUKKITUPTODATEB" = "1" ]; then
- echo "Downloading Bukkit"
- screen -dr $NAME1 -X stuff "uptodate download"
- screen -dr $NAME1 -X stuff $'\n'
- until [ -e "$DIR1/bukkit_update/download/download.ready" ]; do
- for c in $(seq 1 5); do
- echo -n "."
- sleep 5
- done
- if [ -e "$DIR1/bukkit_update/download/download.fail" ]; then
- break
- fi
- done
- echo !
- if [ -e "$DIR1/bukkit_update/download/download.ready" ]; then
- echo "Update Bukkit..."
- cp $DIR1/bukkit_update/download/craftbukkit.jar $DIR1
- cp $DIR1/bukkit_update/download/craftbukkit.jar $DIR2
- chmod 777 $DIR1/craftbukkit.jar
- chmod 777 $DIR2/craftbukkit.jar
- else
- echo "No Bukkit Update"
- fi
- elif [ "$MCUPDATE" = "1" ]; then
- echo "Update Bukkit..."
- cd $DIR1
- rm craftbukkit.jar
- wget -N $DLBUKKIT -O craftbukkit.jar
- chmod 777 craftbukkit.jar
- cd $DIR2
- rm craftbukkit.jar
- wget -N $DLBUKKIT -O craftbukkit.jar
- chmod 777 craftbukkit.jar
- fi
- if [ "$CRAFTBUKKITUPTODATEP" = "1" ]; then
- echo "Downloading Plugin Updates..."
- screen -dr $NAME1 -X stuff "uptodate plugin"
- screen -dr $NAME1 -X stuff $'\n'
- sleep 3
- screen -dr $NAME2 -X stuff "uptodate plugin"
- screen -dr $NAME2 -X stuff $'\n'
- until [ "$PLDMC1" = "ok" ] && [ "$PLDMC2" = "ok" ]; do
- if [ -e "$DIR1/bukkit_update/plugins/plugin.ready" ]; then
- PLDMC1="ok"
- elif [ -e "$DIR1/bukkit_update/plugins/plugin.fail" ]; then
- PLDMC1="fail"
- fi
- if [ -e "$DIR2/bukkit_update/plugins/plugin.ready" ]; then
- PLDMC2="ok"
- elif [ -e "$DIR2/bukkit_update/plugins/plugin.fail" ]; then
- PLDMC2="fail"
- fi
- for c in $(seq 1 5); do
- echo -n "."
- sleep 5
- done
- if [ "$PLDMC1" = "fail" ] && [ "$PLDMC2" = "fail" ]; then
- break
- fi
- if [ "$PLDMC1" = "fail" ] && [ "$PLDMC2" = "ok" ]; then
- break
- fi
- if [ "$PLDMC1" = "ok" ] && [ "$PLDMC2" = "fail" ]; then
- break
- fi
- done
- echo !
- if [ "$PLDMC1" = "ok" ] && [ "$PLDMC2" = "ok" ]; then
- echo "Update $DESC1 Plugins..."
- cp -r $DIR1/bukkit_update/plugins/*.jar $DIR1/plugins/
- echo "done"
- echo "Update $DESC2 Plugins..."
- cp -r $DIR2/bukkit_update/plugins/*.jar $DIR2/plugins/
- echo "done"
- elif [ "$PLDMC1" = "ok" ]; then
- echo "Update $DESC1 Plugins..."
- cp -r $DIR1/bukkit_update/plugins/*.jar $DIR1/plugins/
- echo "done"
- echo "$DESC2 have no Plugin updates"
- elif [ "$PLDMC2" = "ok" ]; then
- echo "$DESC1 have no Plugin updates"
- echo "Update $DESC2 Plugins..."
- cp -r $DIR2/bukkit_update/plugins/*.jar $DIR2/plugins/
- echo "done"
- else
- echo "No Plugin Updates"
- fi
- fi
- if [ "$CRAFTBUKKITUPTODATEB" = "1" ] && [ "$CRAFTBUKKITUPTODATEP" = "1" ]; then
- echo "Cleaning temporary Plugins"
- rm -f $DIR1/bukkit_update/download/craftbukkit.jar $DIR1/bukkit_update/download/download.fail $DIR1/bukkit_update/download/download.ready
- rm -rf $DIR1/bukkit_update/plugins/*.jar $DIR1/bukkit_update/plugins/*.zip $DIR1/bukkit_update/plugins/plugin.ready $DIR1/bukkit_update/plugins/plugin.fail
- rm -rf $DIR2/bukkit_update/plugins/*.jar $DIR2/bukkit_update/plugins/*.zip $DIR2/bukkit_update/plugins/plugin.ready $DIR2/bukkit_update/plugins/plugin.fail
- elif [ "$CRAFTBUKKITUPTODATEB" = "1" ]; then
- echo "Cleaning temporary Plugins"
- rm -f $DIR1/bukkit_update/download/craftbukkit.jar $DIR1/bukkit_update/download/download.fail $DIR1/bukkit_update/download/download.ready
- elif [ "$CRAFTBUKKITUPTODATEP" = "1" ]; then
- echo "Cleaning temporary Plugins"
- rm -rf $DIR1/bukkit_update/plugins/*.jar $DIR1/bukkit_update/plugins/*.zip $DIR1/bukkit_update/plugins/plugin.ready $DIR1/bukkit_update/plugins/plugin.fail
- rm -rf $DIR2/bukkit_update/plugins/*.jar $DIR2/bukkit_update/plugins/*.zip $DIR2/bukkit_update/plugins/plugin.ready $DIR2/bukkit_update/plugins/plugin.fail
- fi
- if [ "$BKUPOLD" = "1" ]; then
- echo "Cleaning old Backups"
- find $BKUP -type f -mtime +$BKUPOLDT -delete
- fi
- else
- mkdir $BKUP
- echo "Backing up current binaries..."
- DATE=$(date +%d-%m-%Y)
- cd $DIR1
- tar -czf minecraft_server_1-$DATE.tar.gz plugins/* craftbukkit.jar server.log
- mv minecraft_server_1-$DATE.tar.gz $BKUP
- if [ "$CRAFTBUKKITUPTODATEB" = "1" ]; then
- echo "Downloading Bukkit..."
- screen -dr $NAME1 -X stuff "uptodate download"
- screen -dr $NAME1 -X stuff $'\n'
- until [ -e "$DIR1/bukkit_update/download/download.ready" ]; do
- for c in $(seq 1 5); do
- echo -n "."
- sleep 5
- done
- if [ -e "$DIR1/bukkit_update/download/download.fail" ]; then
- break
- fi
- done
- echo !
- if [ -e "$DIR1/bukkit_update/download/download.ready" ]; then
- echo "Update Bukkit..."
- cp $DIR1/bukkit_update/download/craftbukkit.jar $DIR1
- chmod 777 $DIR1/craftbukkit.jar
- else
- echo "No Bukkit Update"
- fi
- elif [ "$MCUPDATE" = "1" ]; then
- echo "Update Bukkit..."
- cd $DIR1
- rm craftbukkit.jar
- wget -N $DLBUKKIT -O craftbukkit.jar
- chmod 777 craftbukkit.jar
- cd $DIR2
- rm craftbukkit.jar
- wget -N $DLBUKKIT -O craftbukkit.jar
- chmod 777 craftbukkit.jar
- fi
- if [ "$CRAFTBUKKITUPTODATEP" = "1" ]; then
- echo "Downloading Plugin Updates..."
- screen -dr $NAME1 -X stuff "uptodate plugin"
- screen -dr $NAME1 -X stuff $'\n'
- until [ "$PLDMC1" = "ok" ] && [ "$PLDMC2" = "ok" ]; do
- if [ -e "$DIR1/bukkit_update/plugins/plugin.ready" ]; then
- PLDMC1="ok"
- elif [ -e "$DIR1/bukkit_update/plugins/plugin.fail" ]; then
- PLDMC1="fail"
- fi
- for c in $(seq 1 5); do
- echo -n "."
- sleep 5
- done
- if [ "$PLDMC1" = "fail" ]; then
- break
- fi
- done
- if [ "$PLDMC1" = "ok" ]; then
- echo "Update $DESC1 Plugins..."
- cp -r $DIR1/bukkit_update/plugins/*.jar $DIR1/plugins/
- echo "done"
- else
- echo "No Plugin Updates"
- fi
- fi
- if [ "$CRAFTBUKKITUPTODATEB" = "1" ]; then
- echo "Cleaning temporary Plugins"
- rm -f $DIR1/bukkit_update/download/craftbukkit.jar $DIR1/bukkit_update/download/download.fail $DIR1/bukkit_update/download/download.ready
- rm -rf $DIR1/bukkit_update/plugins/*.jar $DIR1/bukkit_update/plugins/*.zip $DIR1/bukkit_update/plugins/plugin.ready $DIR1/bukkit_update/plugins/plugin.fail
- elif [ "$CRAFTBUKKITUPTODATEB" = "1" ]; then
- echo "Cleaning temporary Plugins"
- rm -f $DIR1/bukkit_update/download/craftbukkit.jar $DIR1/bukkit_update/download/download.fail $DIR1/bukkit_update/download/download.ready
- elif [ "$CRAFTBUKKITUPTODATEP" = "1" ]; then
- echo "Cleaning temporary Plugins"
- rm -rf $DIR1/bukkit_update/plugins/*.jar $DIR1/bukkit_update/plugins/*.zip $DIR1/bukkit_update/plugins/plugin.ready $DIR1/bukkit_update/plugins/plugin.fail
- fi
- if [ "$BKUPOLD" = "1" ]; then
- echo "Cleaning old Backups"
- find $BKUP -type f -mtime +$BKUPOLDT -delete
- fi
- fi
- echo "Server up tp date please restart server now!!"
- exit 1
- ;;
- cron)
- if [ "$SERVER" = "2" ]; then
- cp -r $DIR1/bukkit_update/plugins/*.jar $DIR1/plugins/
- cp -r $DIR2/bukkit_update/plugins/*.jar $DIR2/plugins/
- rm -rf $DIR1/bukkit_update/plugins/*.jar
- rm -rf $DIR2/bukkit_update/plugins/*.jar
- else
- cp -r $DIR1/bukkit_update/plugins/*.jar $DIR1/plugins/
- rm -rf $DIR1/bukkit_update/plugins/*.jar
- fi
- ;;
- *)
- if [ "$SERVER" = "2" ]; then
- echo "Usage: $0 {start1|stop1|restart1|start2|stop2|restart2|restarb|status|update}"
- exit 2
- else
- echo "Usage: $0 {start1|stop1|restart1|status|update}"
- exit 2
- fi
- esac
- exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement