- Баллы
- 73
- Имя в Minecraft
- BoJI4aPa300
Доброго времени суток форумчане.
Совсем недавно мне понадобился скрипт который проверяет сколько % оперативной памяти занимает java, но полазив по интернету я нечего не нашел и решил написать сам протестировал на своем сервере и всё работало просто прекрасно. И вот я решил поделиться им с вами мало ли пригодится.
P.S строго не судите мой первый скрипт
)
Что он умеет. Скрипт запускается по crond каждые 8 мин (можно установить своё время) и проверяет сколько % оперативной памяти занимает процесс Java и если она занимает больше установленного значения, то скрипт даёт команду на остановку сервера. И потом через определенный промежуток времени запускает его снова.
1. Создаём файл с любым именем у меня он будет rest
max=78 ограничение в % потребляемой RAM изменяется в пределах 0-100
cd /newserver - путь до директории с сервером (может быть и другой путь)
./start.sh - запуск сервера (может быть и другое название)
Настройка времени перезагрузки осуществляется через команду sleep "значение"
2. Создаем файл к примеру start.sh
Тут думаю без вопросов
Для всех файлов выставляем права доступа chmod +x rest и start.sh
3. Добавляем авто запуск скрипта
crontab -e
*/8 * * * * /путь/до/скрипта - обновление скрипта каждые 8 минут
PROFIT
P.S Думаю написал всё , если будут вопросы задавайте отвечу , скрипт полезен для серверов с модами. Здесь подобного не нашел но думаю если есть судить строго не будете)))
Доработки
*Проверка полной остановки сервера
Совсем недавно мне понадобился скрипт который проверяет сколько % оперативной памяти занимает 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.sh3. Добавляем авто запуск скрипта
crontab -e
*/8 * * * * /путь/до/скрипта - обновление скрипта каждые 8 минут
PROFIT
P.S Думаю написал всё , если будут вопросы задавайте отвечу , скрипт полезен для серверов с модами. Здесь подобного не нашел но думаю если есть судить строго не будете)))
Доработки
*Проверка полной остановки сервера
