Browse Source

init

master
Artem Shkilev 2 years ago
commit
86e556550b
Signed by: Misterzym
GPG Key ID: 548AD371FC00BF4C
  1. 225
      mc-cp
  2. 7
      miniservtest.cfg
  3. 1
      miniservtest.power
  4. 24
      monitor.sh

225
mc-cp

@ -0,0 +1,225 @@
#!/bin/bash
CONFIG_DIR="/etc/mc-cp/"
FILE_CFG="${CONFIG_DIR}${1}.cfg"
FILE_POWER="${CONFIG_DIR}${1}.power"
DIR_OF_SCRIPT="/usr/bin/"
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
function find_screen {
if screen -ls "$1" | grep -o "^\s*[0-9]*\.$1[ "$'\t'"](" --color=NEVER -m 1 | grep -oh "[0-9]*\.$1" --color=NEVER -m 1 -q >/dev/null; then
screen -ls "$1" | grep -o "^\s*[0-9]*\.$1[ "$'\t'"](" --color=NEVER -m 1 | grep -oh "[0-9]*\.$1" --color=NEVER -m 1 2>/dev/null
return 0
else
echo "$1"
return 1
fi
}
if [ $1 = "list" ]
then
i=0
for f in ${CONFIG_DIR}*.cfg
do
filename="${f##*/}"
filenameWithoutExtension="${filename%.*}"
if [ -w $f ]
then
stst="${GREEN}ACTION${NC}"
else
stst="${RED}NO ACTION${NC}"
fi
if [ -r $f ]
then
source $f
if find_screen "${SCREEN_NAME}" >/dev/null; then
hasscr="${YELLOW}RUN${NC}"
else
hasscr="${YELLOW}NO RUN${NC}"
fi
consl="${GREEN}CONSOLE${NC}"
else
hasscr="???"
consl="${RED}NO CONSOLE${NC}"
fi
let "i=i+1"
echo -e "${i}. ${YELLOW}$filenameWithoutExtension${NC} (${hasscr}) - ${stst} , ${consl}"
done
exit
fi
if [ $1 = "help" ]
then
echo -e "${RED}========= ${GREEN}Minecraft Server Control Panel (mc-cp) ${RED}========="
echo -e "${YELLOW}mc-cp NAME start ${GREEN}- start NAME server"
echo -e "${YELLOW}mc-cp NAME stop ${GREEN}- stop NAME server"
echo -e "${YELLOW}mc-cp NAME restart ${GREEN}- send server NAME comand stop and after run"
echo -e "${YELLOW}mc-cp NAME send COMAND ${GREEN}- send server NAME comand - COMAND"
echo -e "${YELLOW}mc-cp list ${GREEN}- list all register servers,status & permissions current user SSH"
echo -e "${YELLOW}mc-cp NAME new-config ${GREEN}- start master create new server with NAME"
echo -e "${YELLOW}mc-cp NAME view-config ${GREEN}- show all config file NAME server"
echo -e "${YELLOW}mc-cp NAME remove-config ${GREEN}- stop NAME server and remove his config"
echo -e "${YELLOW}mc-cp NAME console ${GREEN}- open console screen select server NAME"
echo -e "${YELLOW}mc-cp NAME run ${GREEN}- start server NAME with not auto run after down"
echo -e "${RED}============== ${GREEN}by Misterzym for up-world.ru ${RED}=============${NC}"
exit
fi
if [ "$#" -lt 2 ]; then
echo -e "${RED}What are you doing?! Parametrs wrong!${NC}"
exit
fi
if [ $2 = "new-config" ]
then
echo "Server dir:"
read Dirs
echo "Server jar file name:"
read Jar
echo "How much memory size server (GB):"
read Memory
echo "#!/bin/bash" > ${FILE_CFG}
echo "SCREEN_NAME=\"${1}\"" >> ${FILE_CFG}
echo "SERVER_DIR=\"$Dirs\"" >> ${FILE_CFG}
echo "SERVER_JAR=\"$Jar\"" >> ${FILE_CFG}
echo "SERVER_MEM=\"${Memory}G\"" >> ${FILE_CFG}
echo 'STOPING_SERVER="0"' >> ${FILE_CFG}
echo 'echo "0" > "${CONFIG_DIR}${1}.power"' >> ${FILE_CFG}
chmod 666 ${FILE_CFG}
echo "0" > ${FILE_POWER}
chmod 666 ${FILE_POWER}
exit
fi
if [ -f ${FILE_CFG} ]
then
echo -e "${GREEN}Find configuration file ${1}${NC}"
else
echo -e "${RED}Cant find configuration file ${1}${NC}"
exit
fi
if [ $2 = "view-config" ]
then
if [ -r ${FILE_CFG} ]
then
source ${FILE_CFG}
echo -e "Server dir: ${YELLOW}${SERVER_DIR}${NC}"
echo -e "Server jar file: ${YELLOW}${SERVER_JAR}${NC}"
echo -e "Memory size server: ${YELLOW}${SERVER_MEM}B${NC}"
else
echo -e "${RED}Not permission${NC}"
fi
exit
fi
if [ $2 = "remove-config" ]
then
if [ -w ${FILE_CFG} ]
then
rm ${FILE_CFG}
rm ${FILE_POWER}
echo -e "${GREEN}Remove config success${NC}"
else
echo -e "${RED}Remove config access${NC}"
fi
exit
fi
if [ $2 = "start" ]
then
if [ -w ${FILE_CFG} ]
then
echo -e "${GREEN}Server ${YELLOW}${SCREEN_NAME}${GREEN} has been started${NC}"
else
echo -e "${RED}Not Permission ${1}${NC}"
exit
fi
source ${FILE_CFG}
screen -S "${SCREEN_NAME}" -X kill >/dev/null 2>&1
screen -S "${SCREEN_NAME}" -d -m
screen -S "${SCREEN_NAME}" -X -p 0 stuff $"cd ${SERVER_DIR}"
screen -S "${SCREEN_NAME}" -X -p 0 stuff $'\r'
screen -S "${SCREEN_NAME}" -X -p 0 stuff $"${DIR_OF_SCRIPT}mc-cp ${1} run"
screen -S "${SCREEN_NAME}" -X -p 0 stuff $'\r'
fi
if [ $2 = "restart" ]
then
if [ -w ${FILE_CFG} ]
then
echo -e "${GREEN}Server ${YELLOW}${SCREEN_NAME}${GREEN} has been restarted${NC}"
else
echo -e "${RED}Not Permission ${1}${NC}"
exit
fi
source ${FILE_CFG}
screen -S "${SCREEN_NAME}" -X -p 0 stuff $'stop\r'
fi
if [ $2 = "stop" ]
then
if [ -w ${FILE_CFG} ]
then
echo -e "${GREEN}Server ${YELLOW}${1}${GREEN} has been stoped${NC}"
else
echo -e "${RED}Not Permission ${1}${NC}"
exit
fi
source ${FILE_CFG}
echo "1" > "${FILE_POWER}"
screen -S "${SCREEN_NAME}" -X -p 0 stuff $'stop\r'
fi
if [ $2 = "send" ]
then
if [ -w ${FILE_CFG} ]
then
echo -e "${GREEN}Server ${YELLOW}${1}${GREEN} send msg ${YELLOW}${3} ${NC}"
else
echo -e "${RED}Not Permission ${1}${NC}"
exit
fi
source ${FILE_CFG}
screen -S "${SCREEN_NAME}" -X -p 0 stuff $"$3\r"
fi
if [ $2 = "console" ]
then
if [ -r ${FILE_CFG} ]
then
echo -e "${GREEN}Open console ${1}${NC}"
else
echo -e "${RED}No Permission ${1}${NC}"
exit
fi
source ${FILE_CFG}
screen -x -D "$SCREEN_NAME"
fi
if [ $2 = "run" ]
then
source ${FILE_CFG}
while true
do
if [ $STOPING_SERVER = "1" ]
then
break
fi
cd ${SERVER_DIR}
java -Xms${SERVER_MEM} -Xmx${SERVER_MEM} -XX:hashCode=5 -Dfile.encoding=UTF-8 -jar ${SERVER_JAR} --log-strip-color
read STOPING_SERVER < "${CONFIG_DIR}${1}.power"
done
fi

7
miniservtest.cfg

@ -0,0 +1,7 @@
#!/bin/bash
SCREEN_NAME="miniservtest"
SERVER_DIR="/mini-games/test/"
SERVER_JAR="server.jar"
SERVER_MEM="2G"
STOPING_SERVER="0"
echo "0" > "${CONFIG_DIR}${1}.power"

1
miniservtest.power

@ -0,0 +1 @@
0

24
monitor.sh

@ -0,0 +1,24 @@
#! /bin/bash
echo "OS Type:" $(uname -o)
echo "|"
echo "OS Name:" $(cat /etc/os-release | grep ^VERSION= | cut -f2 -d\")
echo "|"
echo "OS Version:" $(cat /etc/os-release | grep ^NAME= | cut -f2 -d\")
echo "|"
echo "Architecture:" $(uname -m)
echo "|"
echo "Kernel Release:" $(uname -r)
echo "|"
echo "Load Average: $(cat /proc/loadavg | cut -f 1-3 -d ' ')"
echo "|"
echo "System Uptime:" $(uptime -p | cut -f 2- -d " ")
echo "|"
echo "Hostname:" $HOSTNAME
echo "|"
echo "External IP:" $(wget http://ipinfo.io/ip -qO -)
echo "|"
echo -e "Logged In users:\n$(who)"
echo "|"
echo -e "Memory Usages(Mo):\n$(free -m | grep -v +)"
echo "|"
echo -e "Disk Usages:\n$(df -h| grep '/dev/md2')"
Loading…
Cancel
Save