Войти или зарегистрироваться

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

  • Автор темы Автор темы SmokeD
  • Дата начала Дата начала
На VDS стоит ограничение на потребляемые ресурсы, если сервак жрет больше, то он вырубается, как это исправить?
 
login as: root
[email protected]'s password:
Last login: Tue Oct 9 14:09:06 2012 from 85.26.235.185

п■п╬п╠я─п╬ п©п╬пІп╟п╩п╬п╡п╟я┌я▄!

----------------------------------------------------------------------------------------------------
п║я│я▀п╩п╨п╦ пҐп╟ пЄп╬п╨я┐п╪п╣пҐя┌п╟я├п╦я▌:

* Colobrudge Wiki: http://www.colobridge.net/wiki/
* п·п©п╦я│п╟пҐп╦п╣ я┬п╟п╠п╩п╬пҐп╬п╡ п·п║: http://www.colobridge.net/wiki/vps/templates
* п═п╣пЇп╣я─п╡пҐп╬п╣ п╨п╬п©п╦я─п╬п╡п╟пҐп╦п╣: http://www.colobridge.net/wiki/backup

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

* п²п• п≈п░п▒пёп■п╛п╒п• п║п°п•п²п≤п╒п╛ п÷п░п═п·п⌡п╛ п■п⌡п╞ MySQL

п≤я│п©п╬п╩я▄пЇя┐п╧я┌п╣ п╨п╬п╪п╟пҐпЄя┐: mysql_secure_installation

* п≤п║п÷п·п⌡п╛п≈пёп≥п╒п• п▓п•п≈п■п• п║п⌡п·п√п²п╚п• п÷п░п═п·п⌡п≤, п≤п²п░пїп• п▓п░п╗ п║п•п═п▓п•п═ п▒пёп■п•п╒ п▓п≈п⌡п·п°п░п²

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

-----------------------------------------------------------------------------------------------------

[root@ies-mc ~]#
такое происходит после авторизации(хостинг colobridge)
 
login as: root
[email protected]'s password:
Last login: Tue Oct 9 14:09:06 2012 from 85.26.235.185

п■п╬п╠я─п╬ п©п╬пІп╟п╩п╬п╡п╟я┌я▄!

----------------------------------------------------------------------------------------------------
п║я│я▀п╩п╨п╦ пҐп╟ пЄп╬п╨я┐п╪п╣пҐя┌п╟я├п╦я▌:

* Colobrudge Wiki: http://www.colobridge.net/wiki/
* п·п©п╦я│п╟пҐп╦п╣ я┬п╟п╠п╩п╬пҐп╬п╡ п·п║: http://www.colobridge.net/wiki/vps/templates
* п═п╣пЇп╣я─п╡пҐп╬п╣ п╨п╬п©п╦я─п╬п╡п╟пҐп╦п╣: http://www.colobridge.net/wiki/backup

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

* п²п• п≈п░п▒пёп■п╛п╒п• п║п°п•п²п≤п╒п╛ п÷п░п═п·п⌡п╛ п■п⌡п╞ MySQL

п≤я│п©п╬п╩я▄пЇя┐п╧я┌п╣ п╨п╬п╪п╟пҐпЄя┐: mysql_secure_installation

* п≤п║п÷п·п⌡п╛п≈пёп≥п╒п• п▓п•п≈п■п• п║п⌡п·п√п²п╚п• п÷п░п═п·п⌡п≤, п≤п²п░пїп• п▓п░п╗ п║п•п═п▓п•п═ п▒пёп■п•п╒ п▓п≈п⌡п·п°п░п²

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

-----------------------------------------------------------------------------------------------------

[root@ies-mc ~]#
такое происходит после авторизации(хостинг colobridge)

Это особенности Colorbridg 'a. Под тайной кривой кодировке тебе дают советы и ссылки на вики, и.т.д.
Вообщем ничего важного.
 
сделайте гайд по установке Java на линукс через root доступ, то есть на VDS хост
 
Народ помогите пишу в консоли ./start.sh и выдает ошибку
root@rav-dev-con:/home/minecraft# ./start.sh
./start.sh: line 1: java: command not found
что делать?
 
а на сколько слотов рассчитан этот тарифный план?
(VDS-5 у IPHoster)
 
Со скринами же:
screen -S Name - создание.
screen -x Зайти на скрин.
screen -ls - Посмотреть все скрины.
ctrl + a + d - сверуть.
ctrl + a + x - удалить. Вроде.
 
а на сколько слотов рассчитан этот тарифный план?
(VDS-5 у IPHoster)
Забыл апдейтнуть пост, НИКОГДА НЕ БЕРИТЕ СЕРВЕРА У IPHOSTER, лучше берите хосты у @Mr.Sota , дешевле и лучше. IPHOSTER, не дают нормально работать яве.
 
предлагаю ещё добавить скрипт по управлению сервером майна
1) создаём файл в /etc/init.d/minecraft/
2) cd /etc/init.d/
3) nano minecraft
4) вставляем код
Код:
#!/bin/bash
# /etc/init.d/minecraft
 
### 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='root'
WORLD='Oddworld_Medieval'
MCPATH='/var/www/server3'
BACKUPPATH='/var/www/minecraft.backup'
MAXHEAP=1536
MINHEAP=580
HISTORY=750
CPU_COUNT=1
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
 
  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" -ge "0000" ]minecraft.backup
    cd /var/www/minecraft.backup
    find /var/www/minecraft.backup/* -mtime +1 -print0 | xargs -0 rm -rf
    else
    echo 'ne prishlo vremja udoolat';
    fi
     
  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."
  as_user "screen -p 0 -S minecraft -X eval 'stuff \"say SERVER RESTART IN 10 SECONDS...\"\015'"
  echo "SERVER RESTART IN 10 SECONDS..."
  sleep 10
    mc_stop
    mc_start
  if pgrep -u $USERNAME -f $SERVICE > /dev/null
    then
      echo "$SERVICE is running."
    else
      echo "$SERVICE is not running."
    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 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: $0 {start|stop|update|backup|status|restart|command \"server command\"}"
  exit 1
  ;;
esac
 
exit 0

5) разрешаем выполнять скрипт chmod a+x /etc/init.d/minecraft

6) запускаем при старте сервера update-rc.d minecraft defaults

7) в крон табе 0,30 * * * * /etc/init.d/minecraft backup
 
предлагаю ещё добавить скрипт по управлению сервером майна
1) создаём файл в /etc/init.d/minecraft/
2) cd /etc/init.d/
3) nano minecraft
4) вставляем код
Код:
#!/bin/bash
# /etc/init.d/minecraft
 
### 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='root'
WORLD='Oddworld_Medieval'
MCPATH='/var/www/server3'
BACKUPPATH='/var/www/minecraft.backup'
MAXHEAP=1536
MINHEAP=580
HISTORY=750
CPU_COUNT=1
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
 
  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" -ge "0000" ]minecraft.backup
    cd /var/www/minecraft.backup
    find /var/www/minecraft.backup/* -mtime +1 -print0 | xargs -0 rm -rf
    else
    echo 'ne prishlo vremja udoolat';
    fi
   
  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."
  as_user "screen -p 0 -S minecraft -X eval 'stuff \"say SERVER RESTART IN 10 SECONDS...\"\015'"
  echo "SERVER RESTART IN 10 SECONDS..."
  sleep 10
    mc_stop
    mc_start
  if pgrep -u $USERNAME -f $SERVICE > /dev/null
    then
      echo "$SERVICE is running."
    else
      echo "$SERVICE is not running."
    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 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: $0 {start|stop|update|backup|status|restart|command \"server command\"}"
  exit 1
  ;;
esac
 
exit 0

5) разрешаем выполнять скрипт chmod a+x /etc/init.d/minecraft

6) запускаем при старте сервера update-rc.d minecraft defaults

7) в крон табе 0,30 * * * * /etc/init.d/minecraft backup

Способ не всегда подойдет, т.к не на всех VPS/VDS есть Cron.
 
@SmokeD, пример можешь привести? cron это одна из основных служб linux

если вдруг, по каким-то причинам, крона не будет, то что мешает сделать sudo apt-get install cron ?
 
В памятку про screen добавьте:
screen -d -r Name - зайти в скрин Name
openjdk лучше не юзать, раньше у меня стоял - сильно глючил, лучше скачать нормальную яву от oracle
 
@SmokeD, пример можешь привести? cron это одна из основных служб linux

если вдруг, по каким-то причинам, крона не будет, то что мешает сделать sudo apt-get install cron ?
Полностью согласен тем более крон нужен только для запуска авто бекапа удаление старых бекапов и перезапуск сервера после бекапа если надо могу поставить коменты где что удалить надо....
И да если есть VPS например на debian или ubuntu или то там этот пакет ставится автоматически. Он может там отсутствовать только если его ЯВНО удалять админы.

SmokeD, Не в обиду но похожу вы даже с кронам и не знакомы что это такое выдержка из википедии
cron — демон-планировщик задач в UNIX-подобных операционных системах, использующийся для периодического выполнения заданий в определённое время. Регулярные действия описываются инструкциями, помещенными в файлы crontab, которые находятся в каталоге[1]:
Плюс если у вас на винде нет Планировщика задач значит вы на маке сидите.

А сам скрипт проста облегчает жизнь запуск и остановку сервера например
чтоб остановить сервер не надо бежать в скрин а достаточна ввести
service minecraft stop
для запуска
service minecraft start
для перезапуска
service minecraft restart
Плюс если сервер будет перезагружен по тем или иным причинам то сервер майна без данного скрипта не запустится а тут хоть сервер 100000 перезагружай сервер майна будет запущен автоматически. так что думаю в туториал вверх темы надо поставить. если автор согласится поставить могу прокомментировать код и подробней написать как работать со скриптом.
 
Назад
Верх