Autor Tópico: [Bash] WebTuga GameServer Script  (Lida 1684 vezes)

Offline Teotónio Ricardo

  • Administrator
  • Newbie
  • *****
  • Mensagens: 0
  • Karma: +0/-0
    • Ver Perfil
    • http://www.teotonio.pt
[Bash] WebTuga GameServer Script
« em: Fevereiro 24, 2009, 02:24:09 pm »
Convido-vos a participar na criação de um script para criação e gestão de gameservers:

Código: [Seleccione]
#!/bin/bash
# CONFIGURADOR DE GAMESERVERS WEBTUGA by cenourinha
Principal() {
   clear
echo "================================="
echo " _"
echo " | | _"
echo " _ _ _ _____| |__ _| |_ _   _  ____ _____"
echo "| | | | ___ |  _ (_   _) | | |/ _  (____ |"
echo "| | | | ____| |_) )| |_| |_| ( (_| / ___ |"
echo " \___/|_____)____/  \__)____/ \___ \_____|"
echo " (_____|"
echo "================================="

   echo "CONFIGURADOR DE GAMESERVERS WEBTUGA"
   echo "------------------------------------------------- by cenourinha"
   echo "Op√ß√µes:"
   echo
   echo "1. Iniciar servidor"
   echo "2. Parar servidor"
   echo "3. Fazer Update ao servidor"
   echo "4. Criar cliente"
   echo "5. Sair"
   echo
   echo -n "Qual a opcao desejada? "
   read opcao
   case $opcao in
 1) Iniciar;;
 2) Parar;;
 3) Update;;
 4) CriarCliente;;
 5) clear; echo "Ate logo!"; sleep 3s; clear; exit;;
 *) "Opcao desconhecida."; echo; Principal;;
   esac
}
Iniciar() {
clear
echo -n "Iniciar uma GameServer"
echo
sleep 1s
clear
echo "Qual o cliente (username)?"
read user
clear
echo "Qual o nome do servidor?"
read nomeservidor
clear
echo Qual a porta?
read porta
clear
echo Quantas slots?
read slots
if [ $slots -lt 12 ];  then
clear
echo "Devera ter no minimo 12 slots"
read
Iniciar
fi
clear
echo Qual o mapa?
   echo
   echo "1. de_dust2"
   echo "2. de_dust"
   echo "3. cs_assault"
   echo
read mapa
   case $mapa in  
 1)
mapa="de_dust2";;
 2)
mapa="de_dust";;
 3)
mapa="cs_assault";;
 *) clear; echo "Opcao desconhecida."; echo; Iniciar;;
   esac
clear
cd /home/cs/$user
screen -r $user -X quit
screen -dmS $user ./hlds_run -game cstrike +ip 81.92.204.166 +port $porta +maxplayers $slots +exec server.cfg +map $mapa +hostname "$nomeservidor"
echo Servidor iniciado com sucesso!
}

Parar() {
   clear
   echo "Qual o cliente(username)?"
   read user
   clear
   echo -n "Tem a certeza? [y/n] "
   read var
   if [ $var = "y" ]; then
screen -wipe
screen -r $user -X quit
clear
echo "Server parado com sucesso!"
sleep 2s
   elif [ $var = "n" ]; then
  Principal
  fi
   Principal
}

CriarCliente() {
clear
echo "Criar cliente"
sleep 1s
clear
echo "Qual username?"
read username
clear
echo "Qual a password?"
read password
clear
echo "Insira a password root"
su --command="useradd -d /home/cs/$username -s /usr/bin/rc -p $password -G cs -m -k /home/cs/server/ $username; chmod 777 /home/cs/$username; exit;" -
clear
echo "Cliente criado com sucesso"
sleep 2s
Principal
}
Update() {
clear
echo "Qual o cliente(username)?"
read user
clear
echo "A actualizar..."
./steam -command update -game cstrike -dir /home/$USER/$user
sleep 3s
echo "Actualizado com sucesso..."
clear
}
Principal

Offline trmanco

  • Global Moderator
  • Newbie
  • *****
  • Mensagens: 0
  • Karma: +0/-0
    • Ver Perfil
    • http://trmanco.com
[Bash] WebTuga GameServer Script
« Responder #1 em: Fevereiro 24, 2009, 02:26:39 pm »
Se quiseres levar isto a serio porque não utilizar o VCS para que assim haja organização.

Posso ser chato tou farto de te falar em VCS, mas é muito útil...

Offline Teotónio Ricardo

  • Administrator
  • Newbie
  • *****
  • Mensagens: 0
  • Karma: +0/-0
    • Ver Perfil
    • http://www.teotonio.pt
[Bash] WebTuga GameServer Script
« Responder #2 em: Fevereiro 24, 2009, 03:24:08 pm »
Vou analisar isso, para já encontrei um bug.

Código: [Seleccione]
su --command="useradd -d /home/cs/$username -s /usr/bin/rc -p $password -G cs -m -k /home/cs/server/ $username; chmod 777 /home/cs/$username; exit;" -
Deve ser:

Código: [Seleccione]
su --command="useradd -d /home/cs/$username -s /usr/bin/rc -p $password -g cs -m -k /home/cs/server/ $username; chmod 777 /home/cs/$username; exit;" -
O parametro G vai definir grupos secundários, eu quero que o grupo principal do utilizador seja o "cs", portanto o g deve ser pequeno.

Offline MoHa

  • Newbie
  • *
  • Mensagens: 0
  • Karma: +0/-0
    • Ver Perfil
    • http://
[Bash] WebTuga GameServer Script
« Responder #3 em: Fevereiro 24, 2009, 04:43:52 pm »
Isto promete  

Continuem com o excelente trabalho
Smells like Tuna, Tastes Like Chicken .

Offline Teotónio Ricardo

  • Administrator
  • Newbie
  • *****
  • Mensagens: 0
  • Karma: +0/-0
    • Ver Perfil
    • http://www.teotonio.pt
[Bash] WebTuga GameServer Script
« Responder #4 em: Fevereiro 24, 2009, 05:17:14 pm »
Já estou em testes também com um servidor Team Fortness 2.

Código: [Seleccione]
wget http://storefront.steampowered.com/download/hldsupdatetool.bin
chmod +x hldsupdatetool.bin
./hldsupdatetool.bin
./steam
./steam -command update -game tf -dir . -verify_all
su --command="useradd -d /home/cs/tf -s /usr/bin/rc -p 12345# -g cs -m tf; chmod 777 /home/cs/tf; exit;" -
cd /home/cs/tf/orangebox/
screen -r tf -X quit; screen -wipe; screen -dmS tf ./srcds_run -console -game tf +ip 81.92.204.166 -port 27020 +maxplayers 24 +map ctf_2fort; echo Servidor iniciado com sucesso!;

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49