commit
86e556550b
4 changed files with 257 additions and 0 deletions
@ -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 |
@ -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" |
@ -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…
Reference in new issue