start.sh

BaroX

Nováček
Zpráv
4
Bodů
14
Servery
VPS: 89.203.250.54
MC paper spigot 1.8.8: ms25.hicoria.cloud:43235
Zdravím, mám vps server, ale mám problém se start.sh takhle v putty dám: cd /home/mc - a v té složce mc je 5 server napojených na bungee (jména serverů: auth,lobby,atd,atd,atd) a start.sh - který když zapnu tak tam jsou otázky např.: jestli chci zapnout server jeden nebo všechny atd... viz. foto) ale problém mám ten že když ho zapnu tak při zapínání serveru mi to hlásí chybu na 71 line viz. foto (potřebuji s tím help jestli někdo ví jak to opravit budu rád soubour start.sh přiložim
#!/bin/bash

#COLORS

GR="\033[0;32m"
NC="\033[0m"
RED="\033[0;31m"

#---CONFIG----

rootdir="/home"
Xmx="512"
jarfile="spigot.jar"

#-------------

serverz=( $(find . -maxdepth 1 ! -path . -type d -exec basename {} \; | xargs -0) )

if [ "$(id -u)" != "0" ]; then
echo "Musis byt root aby ti ten script fungoval" 1>&2
exit 1
fi

function start {
optz=("Zapnout vsechny server" "Zapnout jeden server")
printf "${RED}Vyber si:${NC}\n"
select optz in "${optz[@]}"; do
case $REPLY in
1) allstart; break ;;
2) onestart; break ;;
*) echo "Coze?" ;;
esac
done
}

function stop {
opts=("Vypnout vsechny servery" "Vypnout jeden server")
printf "${RED}Vyber si:${NC}\n"
select opts in "${opts[@]}"; do
case $REPLY in
1) shutall; break ;;
2) shutone; break ;;
*) echo "Coze?" ;;
esac
done
}

function allstart {
printf " \n"
printf "${GR}Startuji server...${NC}\n"
for d in ./*/ ; do (cd "$d" && n=${PWD##*/}; screen -AmdS $n java -Xms"$Xmx"M -Xmx"$Xmx"M -jar server.jar); done
printf "${GR}Hotovo${NC}\n"
printf " \n"
}

function onestart {
printf "${RED}Vyber server:${NC}\n"
select server in "${serverz[@]}" "Ukoncit" ; do
if (( REPLY == 1 + ${#serverz[@]} )) ; then
exit
elif (( REPLY > 0 && REPLY <= ${#serverz[@]} )) ; then
printf "${GR}Vybral jsi $server pod cislem $REPLY${NC}\n"
break

else
echo "${RED}Nespravna volba, zkus to znovu${NC}\n"
fi
done
printf " \n"
printf "${GR}Startuji server...${NC}\n"
cd "/$rootdir/$server" && n=${PWD##*/}; screen -AmdS $n java -Xms"$Xmx"M -Xmx"$Xmx"M -jar server.jar
if ! screen -list | grep -q "$n"; then
printf "${RED}Server se nepodarilo nastartovat${NC}\n"
printf " \n"
break

else
printf "${GR}Hotovo${NC}\n"
printf " \n"
fi
}

function shutall {
printf " \n"
printf "${GR}Vypinam servery...${NC}\n"
for d in ./*/ ; do (cd "$d" && n=${PWD##*/}; screen -X -S $n stop); done
printf "${GR}Hotovo${NC}\n"
printf " \n"
}

function shutone {
printf "${RED}Vyber server:${NC}\n"
select server in "${serverz[@]}" "Ukoncit" ; do
if (( REPLY == 1 + ${#serverz[@]} )) ; then
exit
elif (( REPLY > 0 && REPLY <= ${#serverz[@]} )) ; then
printf "${GR}Vybral jsi $server pod cislem $REPLY${NC}\n"
break

else
echo "${RED}Nespravna volba, zkus to znovu${NC}\n"
fi
done
printf " \n"
printf "${GR}Vypinam server...${NC}\n"
cd "/$rootdir/$server" && n=${PWD##*/}; screen -X -S $n quit
printf "${GR}Hotovo${NC}\n"
printf " \n"
}

function delete {
printf "${RED}Vyber server:${NC}\n"
select server in "${serverz[@]}" "Ukoncit" ; do
if (( REPLY == 1 + ${#serverz[@]} )) ; then
exit
elif (( REPLY > 0 && REPLY <= ${#serverz[@]} )) ; then
printf "${GR}Vybral jsi $server pod cislem $REPLY${NC}\n"
break

else
echo "${RED}Nespravna volba, zkus to znovu${NC}\n"
fi
done
printf " \n"
printf "${GR}Mazu server...${NC}\n"
rm -rf $server
printf "${GR}Hotovo${NC}\n"
printf " \n"
}

function console {
printf "${RED}Vyber server:${NC}\n"
select server in "${serverz[@]}" "Ukoncit" ; do
if (( REPLY == 1 + ${#serverz[@]} )) ; then
exit
elif (( REPLY > 0 && REPLY <= ${#serverz[@]} )) ; then
printf "${GR}Vybral jsi $server pod cislem $REPLY${NC}\n"
break

else
echo "${RED}Nespravna volba, zkus to znovu${NC}\n"
fi
done
cd "/$rootdir/$server" && n=${PWD##*/}; screen -r $n
}

all_done=0
while (( !all_done )); do
options=("Start" "Stop" "Jit do konzole" "Vymazat server")

printf "${RED}Vyber si:${NC}\n"
select opt in "${options[@]}"; do
case $REPLY in
1) start; break ;;
2) stop; break ;;
3) console; break ;;
4) delete; break ;;
*) echo "Coze?" ;;
esac
done

printf "${RED}Mas vse hotovo?${NC}\n"
select opt in "Ano" "Ne"; do
case $REPLY in
1) all_done=1; break ;;
2) break ;;
*) echo "Hele, je to jednoducha otazka..." ;;
esac
done
done
 

Přílohy

  • unknown.png
    unknown.png
    131,2 KB · Zobrazení: 11
Poslední změna:

BaroX

Nováček
Zpráv
4
Bodů
14
Servery
VPS: 89.203.250.54
MC paper spigot 1.8.8: ms25.hicoria.cloud:43235
je to hned to pod tím
"rozbalit vše"
 

StraightCore

Stará garda
Zpráv
216
Bodů
429
Místo
Liberec
V configu máš:

rootdir="/home"
Xmx="512"
jarfile="spigot.jar"

rootdir podle toho co píšeš je /home/mc a jarfile máš server.jar ne spigot.jar
 

BaroX

Nováček
Zpráv
4
Bodů
14
Servery
VPS: 89.203.250.54
MC paper spigot 1.8.8: ms25.hicoria.cloud:43235
Jasně no, zkoušel jsem tam dát server.jar, ale pak jsem si řekl že když ten script fungoval naposledy (co já vím) 7.10.2019 a bez problémů, tak nevím co s tím může být ....
 

StraightCore

Stará garda
Zpráv
216
Bodů
429
Místo
Liberec
Tak buď máš na serveru spigot.jar, nebo server.jar, podle toho by měl vypadat i start skript i ten rootdir by měl být /home/mc na tom screenu ti to jasné píše, že nenašel cestu.
 

StraightCore

Stará garda
Zpráv
216
Bodů
429
Místo
Liberec
Odzkoušeno na localhostu a funguje normálně.

IMG_119.jpg

---- Automaticky sloučená zpráva ----

Kód:
#!/bin/bash

#COLORS

GR="\033[0;32m"
NC="\033[0m"
RED="\033[0;31m"

#---CONFIG----

rootdir="/home/mc"
Xmx="4096"
jarfile="server.jar"

#-------------

serverz=( $(find . -maxdepth 1 ! -path . -type d -exec basename {} \; | xargs -0) )

if [ "$(id -u)" != "0" ]; then
echo "Musis byt root aby ti ten script fungoval" 1>&2
exit 1
fi

function start {
optz=("Zapnout vsechny servery" "Zapnout jeden server")
printf "${RED}Vyber si:${NC}\n"
select optz in "${optz[@]}"; do
case $REPLY in
1) allstart; break ;;
2) onestart; break ;;
*) echo "Coze?" ;;
esac
done
}

function stop {
opts=("Vypnout vsechny servery" "Vypnout jeden server")
printf "${RED}Vyber si:${NC}\n"
select opts in "${opts[@]}"; do
case $REPLY in
1) shutall; break ;;
2) shutone; break ;;
*) echo "Coze?" ;;
esac
done
}

function allstart {
printf " \n"
printf "${GR}Startuji server...${NC}\n"
for d in ./*/ ; do (cd "$d" && n=${PWD##*/}; screen -AmdS $n java -Xms"$Xmx"M -Xmx"$Xmx"M -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dfile.encoding=UTF-8 -Dterminal.jline=false -Duser.timezone=Europe/Prague -Daikars.new.flags=true -Dusing.aikars.flags=https://mcflags.emc.gs -jar server.jar  --nogui); done
printf "${GR}Hotovo${NC}\n"
printf " \n"
}

function onestart {
printf "${RED}Vyber server:${NC}\n"
select server in "${serverz[@]}" "Ukoncit" ; do
if (( REPLY == 1 + ${#serverz[@]} )) ; then
exit
elif (( REPLY > 0 && REPLY <= ${#serverz[@]} )) ; then
printf "${GR}Vybral jsi $server pod cislem $REPLY${NC}\n"
break

else
echo "${RED}Nespravna volba, zkus to znovu${NC}\n"
fi
done
printf " \n"
printf "${GR}Startuji server...${NC}\n"
cd "/$rootdir/$server" && n=${PWD##*/}; screen -AmdS $n java -Xms"$Xmx"M -Xmx"$Xmx"M -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dfile.encoding=UTF-8 -Dterminal.jline=false -Duser.timezone=Europe/Prague -Daikars.new.flags=true -Dusing.aikars.flags=https://mcflags.emc.gs -jar server.jar  --nogui
if ! screen -list | grep -q "$n"; then
printf "${RED}Server se nepodarilo nastartovat${NC}\n"
printf " \n"
break

else
printf "${GR}Hotovo${NC}\n"
printf " \n"
fi
}

function shutall {
printf " \n"
printf "${GR}Vypinam servery...${NC}\n"
for d in ./*/ ; do (cd "$d" && n=${PWD##*/}; screen -X -S $n stop); done
printf "${GR}Hotovo${NC}\n"
printf " \n"
}

function shutone {
printf "${RED}Vyber server:${NC}\n"
select server in "${serverz[@]}" "Ukoncit" ; do
if (( REPLY == 1 + ${#serverz[@]} )) ; then
exit
elif (( REPLY > 0 && REPLY <= ${#serverz[@]} )) ; then
printf "${GR}Vybral jsi $server pod cislem $REPLY${NC}\n"
break

else
echo "${RED}Nespravna volba, zkus to znovu${NC}\n"
fi
done
printf " \n"
printf "${GR}Vypinam server...${NC}\n"
cd "/$rootdir/$server" && n=${PWD##*/}; screen -X -S $n quit
printf "${GR}Hotovo${NC}\n"
printf " \n"
}

function delete {
printf "${RED}Vyber server:${NC}\n"
select server in "${serverz[@]}" "Ukoncit" ; do
if (( REPLY == 1 + ${#serverz[@]} )) ; then
exit
elif (( REPLY > 0 && REPLY <= ${#serverz[@]} )) ; then
printf "${GR}Vybral jsi $server pod cislem $REPLY${NC}\n"
break

else
echo "${RED}Nespravna volba, zkus to znovu${NC}\n"
fi
done
printf " \n"
printf "${GR}Mazu server...${NC}\n"
rm -rf $server
printf "${GR}Hotovo${NC}\n"
printf " \n"
}

function console {
printf "${RED}Vyber server:${NC}\n"
select server in "${serverz[@]}" "Ukoncit" ; do
if (( REPLY == 1 + ${#serverz[@]} )) ; then
exit
elif (( REPLY > 0 && REPLY <= ${#serverz[@]} )) ; then
printf "${GR}Vybral jsi $server pod cislem $REPLY${NC}\n"
break

else
echo "${RED}Nespravna volba, zkus to znovu${NC}\n"
fi
done
cd "/$rootdir/$server" && n=${PWD##*/}; screen -r $n
}

all_done=0
while (( !all_done )); do
options=("Start" "Stop" "Jit do konzole" "Vymazat server")

printf "${RED}Vyber si:${NC}\n"
select opt in "${options[@]}"; do
case $REPLY in
1) start; break ;;
2) stop; break ;;
3) console; break ;;
4) delete; break ;;
*) echo "Coze?" ;;
esac
done

printf "${RED}Mas vse hotovo?${NC}\n"
select opt in "Ano" "Ne"; do
case $REPLY in
1) all_done=1; break ;;
2) break ;;
*) echo "Hele, je to jednoducha otazka..." ;;
esac
done
done
 
Poslední změna:

BaroX

Nováček
Zpráv
4
Bodů
14
Servery
VPS: 89.203.250.54
MC paper spigot 1.8.8: ms25.hicoria.cloud:43235
ok, dík moc

---- Automaticky sloučená zpráva ----

Už to nehlásí chybu ale píše to: There is no screen to be resumed matching "název serveru" v configu na server mám toto:
screen -AmdS "NÁZEV SERVERU" java -Xms1024M -Xmx1024M -jar server.jar
 
Poslední změna:
Top