WebTuga Script

Alguns de vocês provavelmente têm dado pela minha falta (ok, não tanto pela minha falta, mas sim pela falta de posts no WebTuga). Pois bem, tenho andado um pouco ocupado a brincar com a linguagem bash.

Já tinha tido o prazer de brincar com esta linguagem à alguns anos, depois foi-me leccionado no 12º do Curso Tecnológico de Informática (coisa pouca) e este fim de semana tentei fazer algo de útil para o meu dia a dia.

Trata-se nada mais nada menos do que um pequeno script que permite gerir gameservers, neste caso limitado ao Counter-Strike 1.6, mas que poderá ser adaptado a outros tipos de servidores e completado, pois ainda são necessárias algumas configurações antes da sua utilização.

Deverá criar antes de mais um utilizador chamado “cs”, que terá como shell a “/bin/bash” e “/home/cs/” como home. Lá dentro deverá ter também uma pasta chamada “server” com uma instalação por defeito do motor counter-strike 1.6 steam.

O código não está nada de mais e pode ainda ter algumas falhas. No entanto, peço a quem melhor perceber da línguagem que faça uma revisão e caso alguém faça alguma modificação ao código, deixo aqui o meu incentivo a partilhar aqui connosco.

Aqui vai o código:

2 COMENTÁRIOS

  1. Olá,

    Fiz umas alterações: uma função nunca deve chamar-se a si própria, resolvi isso. Melhorei as validações com ciclos. A única coisa a melhorar é verificar se a password de root é correcta.

    Código:

    #!/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”

    erro=0

    until [ $erro -eq 1 ]; do

    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 opção desejada? ”

    read opcao
    echo

    case $opcao in

    1) Iniciar ;;

    2) Parar ;;

    3) Update ;;

    4) CriarCliente ;;

    5) clear; echo “Até logo!”; sleep 3s; clear; exit ;;

    *) erro=1; echo “Opção desconhecida.”; echo;;

    esac

    erro=0

    done

    }

    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

    slots=0

    while [ $slots -lt 12 ]; do

    echo “Quantas slots? (minimo 12 slots)”

    read slots

    done

    clear

    erro=1

    while [ $erro -eq 1 ]; do

    echo “Qual o mapa?”

    echo “1. de_dust2”

    echo “2. de_dust”

    echo “3. cs_assault”

    read mapa

    case $mapa in

    1)

    erro=0; mapa=”de_dust2″;;

    2)

    erro=0; mapa=”de_dust”;;

    3)

    mapa=”cs_assault”; erro=0 ;;

    *) erro=1; clear; echo “Opção desconhecida.”;;

    esac

    done

    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;” –

    echo $username

    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

DEIXE UMA RESPOSTA

Please enter your comment!
Please enter your name here

Este site utiliza o Akismet para reduzir spam. Fica a saber como são processados os dados dos comentários.