Unmantained Tool Shell Script per la gestione del Server

Una guida contrassegnata come Unmantained contiene informazioni su un argomento obsoleto, non più utile o files non aggiornati da parte del creatore.

»SAFE

Utente Emerald
10 Febbraio 2013
566
58
206
445
Ultima modifica:
Salve Inforge.
Pubblico questo semplice script che permette di gestire tutto ciò che riguarda i FileServer, compresa la creazione di backup (per il game, per il DB, e anche per il Source) e la compilazione dei Source o delle Quest, il tutto tramite console (Putty, o VirtualBox).
Basterà semplicemente copiarlo all'interno dei vostri FileServer nella directory principale. Poi modificare, all'inizio del file, la variabile SFROOT, assegnandogli come valore il percorso della cartella principale dei vostri FileServer (di base è impostato `/usr/game`, quindi se il percorso dei vostri FileServer è quello non dovrete modificarlo).
Detto ciò senza troppe chiacchiere vi posto il codice:


Metto anche il link di download: Link

Bash:
#!/bin/sh
clear
# Percorso cartella principale del server (dove si trova il file start.sh)
SFROOT="/usr/game"
# Percorso cartella principale del Source (dove si trovano le cartelle `Extern` e `Server`)
SRCPATH="/usr/source"
# Percorso cartella principale del MySQL (dove si trovano tutte le cartelle dei database tipo `account`, `player`, ecc..)
MySQLPATH="/var/db/mysql"
LOCALE_NAME="italy"


echo -e "\033[32m################################################################################"
echo -e "#\033[0m\033[32m\e[1m                Created by @ SAFE - 2019 Server Manager \033[0m"
echo -e "\033[32m+------------------------------------------------------------------------------+
| Scegli un opzione:
|    1 - Avvia server
|    2 - Spegni server
|    3 - Pulisci log
|    4 - Crea backup
|    5 - Compila Source
|    6 - Compila Quest
|    7 - Annulla
|"
read -p "| Scelta: " chs
echo -e "+------------------------------------------------------------------------------+\033[0m"

case $chs in
1*)
    echo -e "\033[36m"
    read -p "# [Server] > Quanti chanel vuoi aprire? [1/4] : " rch
    
    # if $rch == 0  OR   $rch < 1    OR   $rch > 4
    if [ -z $rch ] || [ $rch -lt 1 ] || [ $rch -gt 4 ] ; then
        echo -e "\033[0m"
        exit
    fi
    
    case $rch in
    [1-4])
        echo -e "\033[0m \033[32m\e[1m"
        echo -e "# ---------------------------------------------------------------------------- #" 
        echo -e "#                                                                                #" 
        echo -e "#\033[0m\033[36m\e[1m   I LOGS VERRANNO SALVATI NEI FILE 'start.log' DELLE RISPETTIVE CARTELLE     \033[0m\033[32m\e[1m#"
        echo -e "#                                                                                #" 
        echo -e "# ---------------------------------------------------------------------------- #"
        echo -e "# [Server] > Avvio del server."
        echo -e "#"
        
        echo -e "# [Server] > Avvio db..."
        cd $SFROOT/cores/db/
        rm -rf syserr syslog start.log
        ./db >> start.log 2>&1 & sleep 2
      
        echo -e "# [Server] > Avvio auth..."
        cd $SFROOT/cores/auth/
        rm -rf syserr syslog start.log
        ./auth >> start.log 2>&1 & sleep 2
        
        i1=1
        while [ $i1 -le $rch ]
        do
            for i2 in 1 2
            do
                echo -e "# [Server] > Avvio channel $i1 - core $i2..."
                cd $SFROOT/cores/channel$i1/core$i2/
                ./game >> start.log 2>&1 & sleep 2
            done
            i1=$(( $i1 + 1 ))
        done

        echo -e "# [Server] > Avvio channel 99..."
        cd $SFROOT/cores/channel99/
        ./game >> start.log 2>&1 & sleep 2

        echo -e "# ---------------------------------------------------------------------------- #\033[0m"
        echo -e "\033[36m\e[1m+------------------------------------------------------------------------------+"
        echo -e "|    Created   By, >>SAFE"
        echo -e "|      SERVER ONLINE!"
        echo -e "+______________________________________________________________________________+\033[0m"
  
    ;;
    *)
        echo -e "\033[0m"
        exit
    ;;
    esac

;;
2*)
    echo -e "\033[33m\e[1m"
    echo -e "# ---------------------------------------------------------------------------- #"
    echo -e "# [Server] > Spegnimento server."
    echo -e "#"
    echo -e "# [Server] > OFF auth.."
    cd $SFROOT/cores/auth
    if [ -r ./pid ]; then
        pkill -1 `cat ./pid`
    fi
    sleep 1
    
    
    for i1 in 1 2 3 4
    do
        for i2 in 1 2
        do
            echo -e "# [Server] > OFF channel $i1 - core $i2.."
            cd $SFROOT/cores/channel$i1/core$i2
            if [ -r ./pid ]; then
                pkill -1 `cat ./pid`
            fi
            sleep 1
        done
    done
    
    echo -e "# [Server] > OFF channel 99.."
    cd $SFROOT/cores/channel99
    if [ -r ./pid ]; then
        pkill -1 `cat ./pid`
    fi
    sleep 1
    
    echo -e "# [Server] > OFF db.."
    cd $SFROOT/cores/db
    if [ -r ./pid ]; then
        pkill -1 `cat ./pid`
    fi
    sleep 1
    
    echo -e "# ---------------------------------------------------------------------------- #\033[0m"
    echo -e "\033[31m\e[1m+------------------------------------------------------------------------------+"
    echo -e "|    Created   By, >>SAFE"
    echo -e "|      SERVER OFFLINE!"
    echo -e "+______________________________________________________________________________+\033[0m"

;;
3*)
    echo -e "\033[32m\e[1m"
    echo -e "# ---------------------------------------------------------------------------- #"
    echo -e "# [Server] > Avvio processo di pulizia dei logs."
    echo -e "#"
  
    # Lista dei file di Log
    DeleteFiles()
    {
        rm -rf *.log
        rm -rf log/*
        rm -rf syserr
        rm -rf syslog
        rm -rf p2p_packet_info.txt
        rm -rf packet_info.txt
        rm -rf PTS
        rm -rf VERSION.txt
        rm -rf stdout
        rm -rf start.log
    }

    echo -e "# [Server] > Pulendo logs db.."
    cd $SFROOT/cores/db/
    DeleteFiles
    #rm -rf db.core    # IF EXIST
    sleep 1

    for i1 in 1 2 3 4
    do
        for i2 in 1 2
        do
            echo -e "# [Server] > Pulendo logs di channel $i1 - core $i2.."
            cd $SFROOT/cores/channel$i1/core$i2/
            DeleteFiles
            #rm -rf game.core    # IF EXIST
            sleep 1
        done
    done

    echo -e "# [Server] > Pulendo logs di channel 99.."
    cd $SFROOT/cores/channel99/
    DeleteFiles
    #rm -rf game.core    # IF EXIST
    sleep 1

    echo -e "# [Server] > Pulendo logs di auth.."
    cd $SFROOT/cores/auth/
    DeleteFiles
    #rm -rf auth.core    # IF EXIST
    sleep 1

    echo -e "# ---------------------------------------------------------------------------- #\033[0m"
    echo -e "\033[34m\e[1m+------------------------------------------------------------------------------+"
    echo -e "|    Created   By, >>SAFE"
    echo -e "|      LOGS PULITI CON SUCCESSO!"
    echo -e "+______________________________________________________________________________+\033[0m"

;;
4*)
    echo -e "\033[34m\e[1m"
    echo -e "# ---------------------------------------------------------------------------- #" 
    echo -e "#                                                                                #" 
    echo -e "#\033[0m  I FILE DI BACKUP VERRANO SALVATI IN '$SFROOT/backup/'                     \033[34m\e[1m#"
    echo -e "#                                                                                #" 
    echo -e "# ---------------------------------------------------------------------------- #"
    echo -e "# [Server] > Avvio del processo di backup del server."
    echo -e "#"
    echo -e "# Di cosa vuoi effettuare il backup?"
    echo -e "#    1 ) Source"
    echo -e "#    2 ) game e MySQL"
    echo -e "#    3 ) Solo game"
    echo -e "#    4 ) Solo MySQL"
    echo -e "#    5 ) Annulla"
    echo -e "#"
    read -p "# Scelta : " bak
  
    # if $rch == 0  OR   $rch < 1    OR   $rch > 5
    if [ -z $bak ] || [ $bak -lt 1 ] || [ $bak -gt 5 ] ; then
        echo -e "\033[0m"
        exit
    fi
  
    cd $SFROOT
    if [ ! -d "backup" ] ; then mkdir "backup" ; fi # Crea la cartella backup se non esiste
    cd backup
  
    case $bak in
        1*)
            echo -e "# [Server] > Creazione backup Source..\033[0m"
            if [ ! -d "Source" ] ; then mkdir "Source" ; fi # Crea la cartella Source
            cd Source
          
            mkdir `date +%F__%H.%M`    # Crea la cartella 'year-mm-dd - hh:mm
            cd `date +%F__%H.%M`
            sleep 3
            tar czvf source.tar.gz $SRCPATH
            sleep 3
        ;;
      
        2*)
            echo -e "# [Server] > Creazione backup game..\033[0m"
          
            if [ ! -d "mysql_and_game" ] ; then mkdir "mysql_and_game" ; fi    # Crea la cartella 'mysql_and_game' se non esiste
            cd mysql_and_game
          
            mkdir `date +%F__%H.%M`    # Crea la cartella 'year-mm-dd - hh:mm'
            cd `date +%F__%H.%M`
            sleep 3
          
            tar czvf game_new.tar.gz $SFROOT
            sleep 3
            echo - e "\033[34m\e[1m# [Server] > Creazione backup MySQL..\033[0m"
            tar czvf mysql_new.tar.gz $MySQLPATH
            sleep 3
        ;;
      
        3*)
            echo -e "# [Server] > Creazione backup game..\033[0m"
              
            if [ ! -d "game" ] ; then mkdir "game"; fi    # Crea la cartella 'game'
            cd game
              
            mkdir `date  +%F__%H.%M`    # Crea la cartella 'year-mm-dd - hh.mm'
            cd `date  +%F__%H.%M`
            sleep 3
            tar czvf game_new.tar.gz $SFROOT
            sleep 3
        ;;
      
        4*)
            echo -e "# [Server] > Creazione backup MySQL..\033[0m"
              
            if [ ! -d "MySQL" ] ; then mkdir "MySQL"; fi    # Crea la cartella 'MySQL'
            cd MySQL
              
            mkdir `date  +%F__%H.%M`    # Crea la cartella 'year-mm-dd - hh.mm'
            cd `date  +%F__%H.%M`
            sleep 3
            tar czvf mysql_new.tar.gz $MySQLPATH
            sleep 3
        ;;
      
        5*)
            echo -e "\033[0m"
            exit
        ;;
      
        *)
            echo -e "\033[0m"
            exit
        ;;
    esac
  
    echo -e "\033[34m\e[1m# ---------------------------------------------------------------------------- #\033[0m"
    echo -e "\033[36m\e[1m+------------------------------------------------------------------------------+"
    echo -e "|    Created   By, >>SAFE"
    echo -e "|      BACKUP CREATO CON SUCCESSO!"
    echo -e "+______________________________________________________________________________+\033[0m"

;;
5*)
    echo -e "\033[32m\e[1m"
    echo -e "# ---------------------------------------------------------------------------- #"
    echo -e "# [Server] > Avvio processo di compilazione Source."
    echo -e "#"
    read -p "# Vuoi compilare sia game che db? [y/n] : " allc
  
    if [ -z $allc ] ; then exit; fi
  
    cd $SRCPATH/Server/
  
    case $allc in
        [y] | [Y] | [yes] | [yY][eE][sS] )
            #gmake all
            cd game/src/
            echo -e "# [Server] > Compilazione Game Source..\033[0m"
            gmake clean    # Clean compiled file list
            sleep 1
            gmake
            cd ../../db/src/
            echo -e "\033[32m\e[1m# [Server] > Compilazione DB Source..\033[0m"
            gmake clean    # Clean compiled file list
            sleep 1
            gmake
        ;;
      
        [n] | [N] | [no] | [nN][oO] )
            read -p "# game o db? : " chsS
          
            case $chsS in
                [game] | [gG][aA][mM][eE] )        # Prende l'input in qualsiasi modo tu lo scriva (MAIUSC / minusc)
                    cd game/src/
                    read -p "# Vuoi fare una compilazione completa di tutti i file? [y/n] : " cc
                    # Svuota la lista di file già compilati, per una compilazione completa di tutti i file
                    #if [ "$cc" == "y" ] ; then gmake clean; fi
                    case $cc in
                        [y] | [Y] | [yes] | [yY][eE][sS] )
                            gmake clean
                            echo -e "# [Server] > Compilazione Game Source..\033[0m"
                            sleep 2
                            gmake                         
                        ;;
                      
                        [n] | [N] | [no] | [nN][oO] )
                            echo -e "# [Server] > Compilazione Game Source..\033[0m"
                            sleep 2
                            gmake
                        ;;
                        *)
                            echo -e "\033[0m"
                            exit
                        ;;
                    esac
                ;;
                [db] | [dD][bB] )    # Prende l'input in qualsiasi modo tu lo scriva (MAIUSC / minusc)
                    cd db/src/
                    read -p "# Vuoi fare una compilazione completa di tutti i file? [y/n] : " cc
                    # Svuota la lista di file già compilati, per una compilazione completa di tutti i file
                    #if [ "$cc" == "y" ] ; then gmake clean; fi
                    case $cc in
                        [y] | [Y] | [yes] | [yY][eE][sS] )
                            gmake clean
                            echo -e "# [Server] > Compilazione DB Source..\033[0m"
                            sleep 2
                            gmake
                        ;;
                        [n] | [N] | [no] | [nN][oO] )
                            echo -e "# [Server] > Compilazione DB Source..\033[0m"
                            sleep 2
                            gmake
                        ;;
                        *)
                            echo -e "\033[0m"
                            exit
                        ;;
                    esac
                ;;
                *)
                    echo -e "\033[0m"
                    exit
                ;;
            esac
        ;;
      
        *)
            echo -e "\033[0m"
            exit
        ;;
    esac

    echo -e "\033[32m\e[1m# ---------------------------------------------------------------------------- #\033[0m"
    echo -e "\033[34m\e[1m+------------------------------------------------------------------------------+"
    echo -e "|    Created   By, >>SAFE"
    echo -e "|      SOURCE COMPILATO CON SUCCESSO!"
    echo -e "+______________________________________________________________________________+\033[0m"

;;
6*)
    echo -e "\033[32m\e[1m"
    echo -e "# ---------------------------------------------------------------------------- #" 
    echo -e "#                                                                                #" 
    echo -e "#\033[0m\033[36m\e[1m       LA LISTA DEI FILE DA COMPILARE SI TROVA IN 'quest/quest_list'          \033[32m\e[1m#"
    echo -e "#                                                                                #" 
    echo -e "# ---------------------------------------------------------------------------- #"
    echo -e "# [Server] > Avvio processo di compilazione Quest."
    echo -e "#"
  
    cd $SFROOT/share/locale/$LOCALE_NAME/quest/
    #sh quest_compile.sh
  
    LIST_FILE='quest_list'
  
    if [ -r $LIST_FILE ]; then
        rm -rdf object
        mkdir object

        while read line;
            do
                echo -e "\033[32m\e[1m# [Compilazione]\033[0m \033[32m$line\033[0m"
                sleep 1
                ./qc $line
            done < $LIST_FILE
    else
        echo -e "\033[31m\e[1m# $LIST_FILE is missing"
        echo -e "\033[0m"
        exit
    fi
  
    echo -e "\033[32m\e[1m# ---------------------------------------------------------------------------- #\033[0m"
    echo -e "\033[36m\e[1m+------------------------------------------------------------------------------+"
    echo -e "|    Created   By, >>SAFE"
    echo -e "|      QUEST COMPILATE CON SUCCESSO!"
    echo -e "+______________________________________________________________________________+\033[0m"
  
;;
7*)
    echo -e "\033[33m\e[1m"
    echo -e "# ---------------------------------------------------------------------------- #"
    echo -e "# [Server] > Operazione annullata."
    echo -e "# ---------------------------------------------------------------------------- #"
    echo -e "\033[0m"
;;

*)
    echo -e "\033[0m"
;;
esac
 
  • Mi piace
Reazioni: Karm4