1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Downloads
  4. Galerie
    1. Alben
  5. Toolbox
    1. Passwort Generator
    2. Portchecker
  6. Mitglieder
    1. Mitgliedersuche
    2. Benutzer online
    3. Trophäen
    4. Team
Fr: 16 Mai 2025
  • Anmelden oder registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Forum
  • Dateien
  • Seiten
  • Bilder
  • Erweiterte Suche

Schön, dass du den Weg zu NodeZone.net gefunden hast! Aktuell bist du nicht angemeldet und kannst deshalb nur eingeschränkt auf unsere Community zugreifen. Um alle Funktionen freizuschalten, spannende Inhalte zu entdecken und dich aktiv einzubringen, registriere dich jetzt kostenlos oder melde dich mit deinem Account an.

Anmelden oder registrieren
    1. Nodezone.net Community
    2. Forum
    3. Server & Hosting
    4. Linux-Server

    [Tutorial] Installation von Minecraft (Debian / Ubuntu)

    • Doxylamin
    • 9. August 2015 um 20:26
    • Erledigt
    • Doxylamin
      Anfänger
      Reaktionen
      25
      Trophäen
      11
      Beiträge
      37
      • 9. August 2015 um 20:26
      • #1

      Installation von Minecraft (Debian / Ubuntu)

      Die Installation von Minecraft (Bukkit) gestaltet sich relativ einfach und schnell.

      Zuerst installieren wir Java und Screen:

      Code
      apt-get update
      apt-get install openjdk-7-jre-headless screen


      Danach erstellen wir einen unpriviligierten Nutzer namens minecraft:

      Code
      useradd -m minecraft

      Nun laden wir Craftbukkit direkt via wget als Nutzer minecraft herunter:

      Code
      su minecraft -c wget -O /home/minecraft/craftbukkit.jar http://dl.bukkit.org/latest-rb/craftbukkit.jar

      Abschließend legen wir zum automatisierten Start ein initscript an und starten den Minecraft Server:

      Code
      editor /etc/init.d/minecraft

      Initscript:

      Bash
      #!/bin/bash
      # /etc/init.d/minecraft
      # version 0.3.9 2012-08-13 (YYYY-MM-DD)
      
      
      
      
      ### BEGIN INIT INFO
      # Provides:   minecraft
      # Required-Start: $local_fs $remote_fs
      # Required-Stop:  $local_fs $remote_fs
      # Should-Start:   $network
      # Should-Stop:    $network
      # Default-Start:  2 3 4 5
      # Default-Stop:   0 1 6
      # Short-Description:    Minecraft server
      # Description:    Starts the minecraft server
      ### END INIT INFO
      
      
      
      
      #Settings
      SERVICE='craftbukkit.jar'
      OPTIONS='nogui'
      USERNAME='minecraft'
      WORLD='world'
      MCPATH='/home/minecraft'
      BACKUPPATH='/media/remote.share/minecraft.backup'
      MAXHEAP=$(/usr/bin/free -m |sed -e '1d' |grep Mem: |awk '{print $4}')
      MINHEAP=$(/usr/bin/free -m |sed -e '1d' |grep Mem: |awk '{print $4}')
      HISTORY=1024
      CPU_COUNT=$(cat /proc/cpuinfo |grep -c processor)
      INVOCATION="java -Xmx${MAXHEAP}M -Xms${MINHEAP}M -XX:+UseConcMarkSweepGC \
      -XX:+CMSIncrementalPacing -XX:ParallelGCThreads=$CPU_COUNT -XX:+AggressiveOpts \
      -jar $SERVICE $OPTIONS"
      
      
      
      
      ME=`whoami`
      as_user() {
        if [ $ME == $USERNAME ] ; then
          bash -c "$1"
        else
          su - $USERNAME -c "$1"
        fi
      }
      
      
      
      
      mc_start() {
        if  pgrep -u $USERNAME -f $SERVICE > /dev/null
        then
          echo "$SERVICE is already running!"
        else
          echo "Starting $SERVICE..."
          cd $MCPATH
          as_user "cd $MCPATH && screen -h $HISTORY -dmS minecraft $INVOCATION"
          sleep 7
          if pgrep -u $USERNAME -f $SERVICE > /dev/null
          then
            echo "$SERVICE is now running."
          else
            echo "Error! Could not start $SERVICE!"
          fi
        fi
      }
      
      
      
      
      mc_saveoff() {
        if pgrep -u $USERNAME -f $SERVICE > /dev/null
        then
          echo "$SERVICE is running... suspending saves"
          as_user "screen -p 0 -S minecraft -X eval 'stuff \"say SERVER BACKUP STARTING. Server going readonly...\"\015'"
          as_user "screen -p 0 -S minecraft -X eval 'stuff \"save-off\"\015'"
          as_user "screen -p 0 -S minecraft -X eval 'stuff \"save-all\"\015'"
          sync
          sleep 10
        else
          echo "$SERVICE is not running. Not suspending saves."
        fi
      }
      
      
      
      
      mc_saveon() {
        if pgrep -u $USERNAME -f $SERVICE > /dev/null
        then
          echo "$SERVICE is running... re-enabling saves"
          as_user "screen -p 0 -S minecraft -X eval 'stuff \"save-on\"\015'"
          as_user "screen -p 0 -S minecraft -X eval 'stuff \"say SERVER BACKUP ENDED. Server going read-write...\"\015'"
        else
          echo "$SERVICE is not running. Not resuming saves."
        fi
      }
      
      
      
      
      mc_stop() {
        if pgrep -u $USERNAME -f $SERVICE > /dev/null
        then
          echo "Stopping $SERVICE"
          as_user "screen -p 0 -S minecraft -X eval 'stuff \"say SERVER SHUTTING DOWN IN 10 SECONDS. Saving map...\"\015'"
          as_user "screen -p 0 -S minecraft -X eval 'stuff \"save-all\"\015'"
          sleep 10
          as_user "screen -p 0 -S minecraft -X eval 'stuff \"stop\"\015'"
          sleep 7
        else
          echo "$SERVICE was not running."
        fi
        if pgrep -u $USERNAME -f $SERVICE > /dev/null
        then
          echo "Error! $SERVICE could not be stopped."
        else
          echo "$SERVICE is stopped."
        fi
      }
      
      
      
      
      mc_update() {
        if pgrep -u $USERNAME -f $SERVICE > /dev/null
        then
          echo "$SERVICE is running! Will not start update."
        else
          MC_SERVER_URL=http://s3.amazonaws.com/MinecraftDownload/launcher/minecraft_server.jar?v=`date | sed "s/[^a-zA-Z0-9]/_/g"`
          as_user "cd $MCPATH && wget -q -O $MCPATH/minecraft_server.jar.update $MC_SERVER_URL"
          if [ -f $MCPATH/minecraft_server.jar.update ]
          then
            if `diff $MCPATH/$SERVICE $MCPATH/minecraft_server.jar.update >/dev/null`
            then
              echo "You are already running the latest version of $SERVICE."
            else
              as_user "mv $MCPATH/minecraft_server.jar.update $MCPATH/$SERVICE"
              echo "Minecraft successfully updated."
            fi
          else
            echo "Minecraft update could not be downloaded."
          fi
        fi
      }
      
      
      
      
      mc_backup() {
         mc_saveoff
      
      
      
      
         NOW=`date "+%Y-%m-%d_%Hh%M"`
         BACKUP_FILE="$BACKUPPATH/${WORLD}_${NOW}.tar"
         echo "Backing up minecraft world..."
         #as_user "cd $MCPATH && cp -r $WORLD $BACKUPPATH/${WORLD}_`date "+%Y.%m.%d_%H.%M"`"
         as_user "tar -C \"$MCPATH\" -cf \"$BACKUP_FILE\" $WORLD"
      
      
      
      
         echo "Backing up $SERVICE"
         as_user "tar -C \"$MCPATH\" -rf \"$BACKUP_FILE\" $SERVICE"
         #as_user "cp \"$MCPATH/$SERVICE\" \"$BACKUPPATH/minecraft_server_${NOW}.jar\""
      
      
      
      
         mc_saveon
      
      
      
      
         echo "Compressing backup..."
         as_user "gzip -f \"$BACKUP_FILE\""
         echo "Done."
      }
      
      
      
      
      mc_command() {
        command="$1";
        if pgrep -u $USERNAME -f $SERVICE > /dev/null
        then
          pre_log_len=`wc -l "$MCPATH/server.log" | awk '{print $1}'`
          echo "$SERVICE is running... executing command"
          as_user "screen -p 0 -S minecraft -X eval 'stuff \"$command\"\015'"
          sleep .1 # assumes that the command will run and print to the log file in less than .1 seconds
          # print output
          tail -n $[`wc -l "$MCPATH/server.log" | awk '{print $1}'`-$pre_log_len] "$MCPATH/server.log"
        fi
      }
      
      
      
      
      #Start-Stop here
      case "$1" in
        start)
          mc_start
          ;;
        stop)
          mc_stop
          ;;
        restart)
          mc_stop
          mc_start
          ;;
        update)
          mc_stop
          mc_backup
          mc_update
          mc_start
          ;;
        backup)
          mc_backup
          ;;
        status)
          if pgrep -u $USERNAME -f $SERVICE > /dev/null
          then
            echo "$SERVICE is running."
          else
            echo "$SERVICE is not running."
          fi
          ;;
        command)
          if [ $# -gt 1 ]; then
            shift
            mc_command "$*"
          else
            echo "Must specify server command (try 'help'?)"
          fi
          ;;
      
      
      
      
        *)
        echo "Usage: mc-control {start|stop|update|backup|status|restart|command \"server command\"}"
        exit 1
        ;;
      esac
      
      
      
      
      exit 0
      Alles anzeigen
      Code
      chmod +x /etc/init.d/minecraft && update-rc.d minecraft defaults
      /etc/init.d/minecraft start
    • nox 11. Mai 2025 um 16:49

      Hat das Thema aus dem Forum Linux Tutorials nach Linux-Server verschoben.

    Registrieren oder Einloggen

    Du bist noch kein Mitglied von Native-Servers.com? Registriere dich kostenlos und werde Teil einer großartigen Community!

    Benutzerkonto erstellen

    Benutzer online in diesem Thema

    • 1 Besucher

    Wichtige Links & Informationen

    Server & Hosting-Ressourcen

      Server Administration & Hosting Basics

      Windows Server Support & Guides

      Linux Server Configuration & Help

      Setting up TeamSpeak 3 & VoIP Servers

      Domains & Web Hosting for Beginners & Professionals

      Cloud Hosting, Docker & Kubernetes Tutorials

    Gameserver & Modding-Ressourcen

      ArmA 3 Tutorials & Script Collection

      Renting & Operating Gameservers

      DayZ Server Management & Help

      FiveM (GTA V) Server & Script Development

      Rust Server Modding & Administration

      Setting up & Optimizing ARK Survival Servers

    NodeZone.net – Deine Community für Gameserver, Server-Hosting & Modding

      NodeZone.net ist dein Forum für Gameserver-Hosting, Rootserver, vServer, Webhosting und Modding. Seit 2015 bietet unsere Community eine zentrale Anlaufstelle für Server-Admins, Gamer und Technikbegeisterte, die sich über Server-Management, Hosting-Lösungen und Spielemodding austauschen möchten.


      Ob Anleitungen für eigene Gameserver, Hilfe bei Root- und vServer-Konfigurationen oder Tipps zu Modding & Scripting – bei uns findest du fundiertes Wissen und praxisnahe Tutorials. Mit einer stetig wachsenden Community findest du hier Antworten auf deine Fragen, Projektpartner und Gleichgesinnte für deine Gaming- und Serverprojekte. Schließe dich NodeZone.net an und werde Teil einer aktiven Community rund um Server-Hosting, Gameserver-Management und Modding-Ressourcen.

    Wer jetzt nicht teilt ist selber Schuld:
    1. Nutzungsbestimmungen
    2. Verhaltensregeln
    3. Datenschutzerklärung
    4. Impressum
    5. Urheberrechts- oder Lizenzverstoß melden
  • Trimax Design coded & layout by Gino Zantarelli 2023-2025©
    Community-Software: WoltLab Suite™