{tuto} Scripts de serveur linux
Posted: Mon May 21, 2007 9:41 pm
Copie de l'essentiel d'un ancien topic sur conseiljedi.com
En vrac, ce que j'ai bricolé pour mes serveurs : (j'insiste sur "bricolé", j'avais besoin de ça, et j'ai improvisé en apprenant au fur et à mesure, donc ma solution (qui marche très bien) n'est pas très esthétique et il y a sans doute plus élégant...)
l'interface :
Toutes les commandes sont transparentes à part
Il s'agit juste de la conversion MAJ/min
Pour éviter les problèmes de nohup, j'utilise deux couches de scripts pour démarrer les servs :
XbootJAP--BASE.sh (il y en a plein d'autres du même style pour toutes les variantes)
XstartJAP--BASE.sh
Xstop.sh
et je stocke le port du serv dans port.txt (il est transmis comme arg d'un script à l'autre)
Le résultat est cette interface : http://conseiljedi.com/f/viewtopic.php?t=298
Voilivoilou
@+
~ Ida
___
J'oubliais :
utilise pour que tes utilisateurs débarquent directement dans ton script
edit :--------------------------------------------
Xcarte c'est ça
pour démarrer un serv avec un fs_game perso
Avec un avatar pareil, je peux difficilement refuserCorran Horn wrote:Voilà, comme je t'en avais parlé précédemment, j'ai commandé un serveur dédié sous Linux (Debian 4.0).
Je me demandais donc si tu avais des scripts, reboot, changements de mods, création de serveurs, ou d'autres choses de ce genre que tu accepterais de me donner (ou m'expliquer comment tout cela fonctionne ).
Merci d'avance
Corran Horn.
En vrac, ce que j'ai bricolé pour mes serveurs : (j'insiste sur "bricolé", j'avais besoin de ça, et j'ai improvisé en apprenant au fur et à mesure, donc ma solution (qui marche très bien) n'est pas très esthétique et il y a sans doute plus élégant...)
l'interface :
Code: Select all
#!/bin/bash
while :
do
clear
myname=`whoami`
echo "Utilisateur en ligne : $myname"
echo "*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=* Gamall"
echo "* § Gestion du Serveur § * v. Alpha"
echo "*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=* 22-01-07"
echo ""
echo " [1] Démarrer le serveur en alternance Japlus/Base"
echo " [B] Démarrer le serveur en Base"
echo " [J] Démarrer le serveur en Japlus"
echo ""
echo " [C] Démarrer le serveur à la carte"
echo ""
echo " [M] Opérations de maintenance"
echo ""
echo " [T] Tuer le serveur (s'il bugge)"
echo " [A] Arrêter totalement le serveur"
echo ""
echo " [Q] Quitter ce script"
echo ""
echo "*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*"
echo ""
echo -n "Entrez votre choix : "
read usin
choice=`echo "$usin" | tr "a-z" "A-Z"`
case $choice in
Q) echo "Vous pouvez terminer la connexion SSH maintenant." ;
killall sshd ;
read ; exit ;;
1) XbootJAP--BASE.sh ; echo "Pressez une touche..." ; read ;;
B) XbootBASE.sh ; echo "Pressez une touche..." ; read ;;
J) XbootJAP.sh ; echo "Pressez une touche..." ; read ;;
C) XbootCARTE.sh ; echo "Pressez une touche..." ; read ;;
T) killall -v linuxjampded ;
lastrestart=`/bin/date`;
echo "§ Serveur tué ponctuellement le $lastrestart" >> ./restart_log.txt ;
echo "Pressez une touche..." ; read ;;
A) Xstop.sh ; echo "Le serveur est totalement arrêté." ; echo "Pressez une touche..." ; read ;;
M) echo "Opérations de maintenance disponibles: " ; Xmain.sh ; echo "Pressez une touche..." ; read ;;
*) echo "Choix incorrect. Vous devez sélectionner une action valide.";
echo "Pressez une touche..." ; read ;;
esac
done
Code: Select all
choice=`echo "$usin" | tr "a-z" "A-Z"`
Pour éviter les problèmes de nohup, j'utilise deux couches de scripts pour démarrer les servs :
XbootJAP--BASE.sh (il y en a plein d'autres du même style pour toutes les variantes)
Code: Select all
#!/bin/bash
# ********* Serveurs Standard du Conseil Jedi *****************
# *************************************************************
echo "§ Tue les serveurs existants..."
Xstop.sh
echo "§ Démarre le serveur..."
cd ;
cd bin/ ;
myport=`more port.txt` ;
cd ;
cd jkaserver/
echo "§ Port détecté pour le serveur : $myport";
nohup XstartJAP--BASE.sh $myport &
XstartJAP--BASE.sh
Code: Select all
#!/bin/bash
# ********* Serveurs Standard du Conseil Jedi *****************
# *************************************************************
cd
cd jkaserver/
/bin/ps ux > ./.temp
alive=`grep -l '+set net_port $1' ./.temp | wc -l`;
if [ $alive -eq 0 ]
then
lastrestart=`/bin/date`;
echo "Serveur JAPLUS redemarre le $lastrestart" >> ./restart_log.txt ;
nohup ../jkaserver/linuxjampded +set dedicated 2 +set net_port $1 +set fs_game japlus +set com_hunkmegs 64 +exec serv.cfg >> log.txt 2>&1
sleep 10;
nohup XstartBASE--JAP.sh $1 &
fi
Code: Select all
#!/bin/bash
# ********* Serveurs Standard du Conseil Jedi *****************
# *************************************************************
cd ;
cd jkaserver/ ;
echo "§ Termine le serveur" ;
lastrestart=`/bin/date`;
echo "§ Serveurs tués le $lastrestart" >> ./restart_log.txt ;
killall -v XstartJAP--BASE.sh ;
killall -v XstartBASE--JAP.sh ;
killall -v XstartJAPonly.sh ;
killall -v XstartBASEonly.sh ;
killall -v XstartCARTE.sh ;
killall -v linuxjampded ;
Le résultat est cette interface : http://conseiljedi.com/f/viewtopic.php?t=298
Voilivoilou
@+
~ Ida
___
J'oubliais :
utilise
Code: Select all
.bash_profile
edit :--------------------------------------------
Xcarte c'est ça
Code: Select all
#!/bin/bash
# ********* Serveurs Standard du Conseil Jedi *****************
# *************************************************************
cd
cd jkaserver/
/bin/ps ux > ./.temp
alive=`grep -l '+set net_port $1' ./.temp | wc -l`;
if [ $alive -eq 0 ]
then
lastrestart=`/bin/date`;
echo "Serveur $2 redemarre le $lastrestart" >> ./restart_log.txt ;
nohup ../jkaserver/linuxjampded +set dedicated 2 +set net_port $1 +set fs_game $2 +set com_hunkmegs 64 +exec $3 >> log.txt 2>&1
sleep 10;
nohup XstartCARTE.sh $1 $2 $3 &
fi