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
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