Утилита Перезагрузка сервера minecraft (Linux)

The.wolk

Активный участник
Пользователь
Баллы
73
Имя в Minecraft
BoJI4aPa300
Доброго времени суток форумчане.

Совсем недавно мне понадобился скрипт который проверяет сколько % оперативной памяти занимает java, но полазив по интернету я нечего не нашел и решил написать сам протестировал на своем сервере и всё работало просто прекрасно. И вот я решил поделиться им с вами мало ли пригодится.

P.S строго не судите мой первый скрипт :))

Что он умеет. Скрипт запускается по crond каждые 8 мин (можно установить своё время) и проверяет сколько % оперативной памяти занимает процесс Java и если она занимает больше установленного значения, то скрипт даёт команду на остановку сервера. И потом через определенный промежуток времени запускает его снова.

1. Создаём файл с любым именем у меня он будет rest
Код:
#!/bin/bash
 
max=78
mem=`ps -eo comm,%mem | grep java  | awk '{ print $2 }'`
name=`ps -eo comm,%mem | grep java  | awk '{ print $1 }'`
 
dmem=`echo "($mem + 0.5)/1" | bc`
 
if [ $name ]
then
if [[ "$dmem" -gt "$max" ]];
then
screen -p 0 -S minecraft -X eval 'stuff "say Запущен скрипт перезапуска..."\015'
sleep 5
screen -p 0 -S minecraft -X eval 'stuff "say Перезапуск сервера через 60 секунд"\015'
sleep 30
screen -p 0 -S minecraft -X eval 'stuff "say Перезапуск сервера через 30 секунд"\015'
sleep 15
screen -p 0 -S minecraft -X eval 'stuff "say Перезапуск сервера через 15 секунд"\015'
sleep 5
screen -p 0 -S minecraft -X eval 'stuff "say Перезапуск сервера через 10 секунд"\015'
sleep 5
screen -p 0 -S minecraft -X eval 'stuff "say Перезапуск сервера через 5 секунд"\015'
sleep 5
screen -p 0 -S minecraft -X eval 'stuff "say Перезапуск сервера..."\015'
screen -p 0 -S minecraft -X eval 'stuff "stop Перезагрузка"\015'
name=`ps -eo comm,%mem | grep java  | awk '{ print $1 }'`
while [ "go$name" = "gojava" ]
do
echo java active
sleep 1
name=`ps -eo comm,%mem | grep java  | awk '{ print $1 }'`
done
cd /newserver
./start.sh
fi
else 
echo java no started
fi

max=78 ограничение в % потребляемой RAM изменяется в пределах 0-100
cd /newserver - путь до директории с сервером (может быть и другой путь)
./start.sh - запуск сервера (может быть и другое название)
Настройка времени перезагрузки осуществляется через команду sleep "значение"

2. Создаем файл к примеру start.sh
Код:
#/bin/sh
/usr/bin/screen -d -m -S minecraft /usr/bin/java -Xincgc -Xmx4G -jar server.jar nogui

Тут думаю без вопросов :) Для всех файлов выставляем права доступа chmod +x rest и start.sh

3. Добавляем авто запуск скрипта
crontab -e
*/8 * * * * /путь/до/скрипта - обновление скрипта каждые 8 минут

PROFIT

P.S Думаю написал всё , если будут вопросы задавайте отвечу , скрипт полезен для серверов с модами. Здесь подобного не нашел но думаю если есть судить строго не будете)))

Доработки

*Проверка полной остановки сервера
 
Супер. Как только доделаю лаунчер займусь этим. Заранее ставлю лайк;)
Код:
root@vps215:~# cron -e
cron: invalid option -- 'e'
usage: cron
root@vps215:~#

что случилось?
 
Супер. Как только доделаю лаунчер займусь этим. Заранее ставлю лайк;)
Код:
root@vps215:~# cron -e
cron: invalid option -- 'e'
usage: cron
root@vps215:~#

что случилось?

Чтобы скрпит в автозапуск добавить в консоли пиши crontab -e и в самом конце дописываешь строчку */8 * * * * /путь/до/скрипта где 8 время повторения в мин
 
Чтобы скрпит в автозапуск добавить в консоли пиши crontab -e и в самом конце дописываешь строчку */8 * * * * /путь/до/скрипта где 8 время повторения в мин

уже сломался крон. Выше я написал строчки с консоли. У меня с этим трудности, помогите пожалуйста. Раз 10 писал до поломки, а сохранять как?
 
уже сломался крон. Выше я написал строчки с консоли. У меня с этим трудности, помогите пожалуйста. Раз 10 писал до поломки, а сохранять как?


чтобы сохранить ctrl+o и выйти ctrl+x
 
Назад
Верх