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