1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Туториал Установка сервера на vds

Тема в разделе "Руководства, инструкции, утилиты", создана пользователем SmokeD, 13 май 2012.

  1. Автор темы
    SmokeD

    SmokeD Старожил Пользователь

    Баллы:
    103
    Имя в Minecraft:
    SmokeD
    1. - Такой я по природе. У меня на Линуксе 1 VDS и домашный сервер. Все. Подробностями строения ОС никогда не интересовался. Так юзаю Mac и Win8.
    2. - Здесь я написал базовый уровень, не вдаваясь в подробности.
    3. - Следующим постом опиши код, добавлю в тутор.
     
    RVXman нравится это.
  2. Автор темы
    SmokeD

    SmokeD Старожил Пользователь

    Баллы:
    103
    Имя в Minecraft:
    SmokeD
    [FIXED]Приходится, ибо поддержки оригинальной, Sun'овской явы в Ubuntu уже нету. Вроде есть какой то способ с alien'ом.
     
  3. Dezy

    Dezy Активный участник Пользователь

    Баллы:
    63
    Skype:
    H-Boob
    Наверное лучше выбирать CentOS а не Ubuntu
     
    zuma2 нравится это.
  4. ksada

    ksada Старожил Пользователь

    Баллы:
    103
    Skype:
    k-s-a-d-a
    Debian лучше
     
  5. wailorman

    wailorman Активный участник Пользователь

    Баллы:
    93
    Skype:
    serg1524
    Имя в Minecraft:
    wailorman
    Это дело вкуса. Может он лучше ориентируется в CentOS, чем в Debian. Хотя у меня абсолютно на всех серверах стоит либо Debian, либо Ubuntu (если нужен GUI)
     
  6. Автор темы
    SmokeD

    SmokeD Старожил Пользователь

    Баллы:
    103
    Имя в Minecraft:
    SmokeD
    Установка на все три выше изложенные ОС отличается только установкой Java, дополнить это не сложно. А, так серверная бубунта менее прожорлива чем например CentOS. (проверял на тру VDS, разница около 100Мб, не суть конечно, но все-же)
     
  7. wailorman

    wailorman Активный участник Пользователь

    Баллы:
    93
    Skype:
    serg1524
    Имя в Minecraft:
    wailorman
    А есть какая-нибудь информация о разнице потребляемых ресурсов у Debian и серверной Ubuntu?
     
  8. papagot

    papagot Активный участник

    Баллы:
    63
    Skype:
    oleg555555555
    Имя в Minecraft:
    papagot
    Код:
    #!/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' #названия файла сервера
    USERNAME='root' # от которово пользывателя запускается сервер
    WORLD='Oddworld_Medieval' #название папки с миром
    MCPATH='/var/www/server3' # путь в какой папке расположен сервер
    BACKUPPATH='/var/www/minecraft.backup' # путь в какой папке расположен сервер !
    time_del='0344' # !!!ТОЛЬКА ЕСЛИ ДЕЛАЕТЕ БЕКАП час и минута ВМЕСТИ ВОСКОЛЬКО УДОЛЯТЬ СТАРЫЕ ФАЙЛЫ
    day='1' # удолять файлы старшк указаных дней
    MAXHEAP=1536 # максимум памети выделять
    MINHEAP=580 # минимум памети выделять
    HISTORY=750 # удерживать сколька памети
    CPU_COUNT=1 #количество ядер
    NAME_SCREEN='industrialminecraft' # имя скрина если используете несколько серверов
    reset_backup='yes' #если после бекапа ресет серера не нежен пишем no
    INVOCATION="java -Xmx${MAXHEAP}M -Xms${MINHEAP}M -XX:+UseConcMarkSweepGC \
    -XX:+CMSIncrementalPacing -XX:ParallelGCThreads=$CPU_COUNT -XX:+AggressiveOpts \
    -jar $SERVICE"
     
    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 $NAME_SCREEN $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 $NAME_SCREEN -X eval 'stuff \"say SERVER BACKUP STARTING. Server going readonly...\"\015'"
        as_user "screen -p 0 -S $NAME_SCREEN -X eval 'stuff \"save-off\"\015'"
        as_user "screen -p 0 -S $NAME_SCREEN -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 $NAME_SCREEN -X eval 'stuff \"save-on\"\015'"
        as_user "screen -p 0 -S $NAME_SCREEN -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 $NAME_SCREEN -X eval 'stuff \"say SERVER SHUTTING DOWN IN 10 SECONDS. Saving map...\"\015'"
        as_user "screen -p 0 -S $NAME_SCREEN -X eval 'stuff \"save-all\"\015'"
        sleep 10
        as_user "screen -p 0 -S $NAME_SCREEN -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_backup() {
      mc_saveoff
     
      i=2 #(  )
    find $BACKUPPATH -type f -mtime +$i -exec rm -f {} \;
     
      NOW=`date "+%Y-%m-%d_%Hh%M"`
      BACKUP_FILE="$BACKUPPATH/${WORLD}_${NOW}.tar"
     
        time=`date +%H%M`
        if [ "$time" -eq "$time_del" ]
        then
        cd /var/www/minecraft.backup
        find /var/www/minecraft.backup/* -mtime +$day -print0 | xargs -0 rm -rf
        else
        echo 'ne prishlo vremja udoolat';
        fi
         
      echo "Backing up minecraft world..."
      as_user "tar -C \"$MCPATH\" -cf \"$BACKUP_FILE\" $WORLD"
     
      echo "Backing up $SERVICE"
      as_user "tar -C \"$MCPATH\" -rf \"$BACKUP_FILE\" $SERVICE"
     
      mc_saveon
     
      echo "Compressing backup..."
      as_user "gzip -f \"$BACKUP_FILE\""
      echo "Done."
      as_user "screen -p 0 -S $NAME_SCREEN -X eval 'stuff \"say SERVER RESTART IN 10 SECONDS...\"\015'"
      echo "SERVER RESTART IN 10 SECONDS..."
      sleep 10
       
        if [ $reset_backup == 'yes' ]
        then
        echo 'reset servaka proizvodit nando'
        mc_stop
        mc_start
      if pgrep -u $USERNAME -f $SERVICE > /dev/null
        then
          echo "$SERVICE is running."
        else
          echo "$SERVICE is not running."
        fi
        else
        echo 'reset servaka proizvodit ne nando'
        fi
    }
     
    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 $NAME_SCREEN -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
        ;;
      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: $0 {start|stop|backup|status|restart|command \"server command\"}"
      exit 1
      ;;
    esac
     
    exit 0
    
     
    wailorman нравится это.
  9. ksada

    ksada Старожил Пользователь

    Баллы:
    103
    Skype:
    k-s-a-d-a
    1. Параметра nogui в бакките вообще нет.
    2. Сделай возможность управлять несколькими серверами, удобнее будет.
     
  10. papagot

    papagot Активный участник

    Баллы:
    63
    Skype:
    oleg555555555
    Имя в Minecraft:
    papagot
    про но гуи понял уберу..
    а управлять предлагаешь service minecraft server1 start
    service minecraft server2 start Задумка неплоха на досуге подумаю как организовать.
    а вообще что мешает продублировать этот файл стока скока серверов и назвать файлы по названию серверов то на то и получится )))) далее в переменной NAME_SCREEN написать название сервера для скрина и всё вауля управляем хоть 100 серверами главное файл дублировать... как идея?
     
  11. papagot

    papagot Активный участник

    Баллы:
    63
    Skype:
    oleg555555555
    Имя в Minecraft:
    papagot
    Ск
    Скажу тат есть 2 впс на обоих стоит Дебиан 6
    про крутую где под 3 гига рама думаю цифарки не интересуют.
    Скажу про впс где стоит серв специально для узка круга людей где играем.
    CPU usage 6% user, 0% kernel, 0% IO, 94% idle
    Real memory 748.68 MB total, 505.13 MB used
    Virtual memory 1.43 GB total, 66.27 MB used
    37.97 GB total, 17.44 GB used
    учитывая что там ещё amp запущен
    И данный серв спокойна выдержывает 5 человек и лагов минимум... данные цыфорки помагли.....
     
  12. vovik_keks

    vovik_keks Активный участник

    Баллы:
    88
    У меня пишет что команда не правильная.. OC Debian 6.0.5
    -bash: add-apt-repository: команда не найдена
     
    Attelis нравится это.
  13. ksada

    ksada Старожил Пользователь

    Баллы:
    103
    Skype:
    k-s-a-d-a
    Пропускай этот пункт, качай яву отсюда
     
    vovik_keks нравится это.
  14. vovik_keks

    vovik_keks Активный участник

    Баллы:
    88
    а куда её впихнуть? :)
     
  15. Автор темы
    SmokeD

    SmokeD Старожил Пользователь

    Баллы:
    103
    Имя в Minecraft:
    SmokeD
    В консоли: apt-get install sun-java6-jre
     
    vovik_keks нравится это.
  16. vovik_keks

    vovik_keks Активный участник

    Баллы:
    88
    мне 7 нужна..
     
    The Midnight Wizard нравится это.
  17. Автор темы
    SmokeD

    SmokeD Старожил Пользователь

    Баллы:
    103
    Имя в Minecraft:
    SmokeD
    Всё до предела просто...
    apt-get install sun-java7-jre
     
    ПриветОтМиднайта и vovik_keks нравится это.
  18. vovik_keks

    vovik_keks Активный участник

    Баллы:
    88
    Если бы..
    Чтение списков пакетов... Готово
    Построение дерева зависимостей
    Чтение информации о состоянии... Готово
    E: Не удалось найти пакет sun-java7-jre
     
  19. Автор темы
    SmokeD

    SmokeD Старожил Пользователь

    Баллы:
    103
    Имя в Minecraft:
    SmokeD
    Извините за мою самоуверенность. Попробуйте так:

    su -
    echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" > /etc/apt/sources.list.d/webupd8team-java.list
    echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" >> /etc/apt/sources.list.d/webupd8team-java.list
    apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EEA14886
    apt-get update
    apt-get install oracle-java7-installer
    exit
     
    vovik_keks нравится это.
  20. vovik_keks

    vovik_keks Активный участник

    Баллы:
    88
    Не могли бы Вы между командами строки пропускать. а то не очень понятно..
     

Поделиться этой страницей