Pages : 1
#1 Le 20/08/2012, à 05:07
- user313
Batch > Shell
Bonjour,
Je possède deux serveurs, un tournant avec Windows serveur, et l'autre...Linux !
Sinon qu'est ce que je ferais ici .
Je suis débutant en linux, j'utilise ubuntu sur mon Ordinateur au quotidien, mais en scripts je n'y connais absoluement rien..
Je possède des scripts batch (windows donc) :
Lancement des srvs :
start_srvs.bat
start srv_mod_1.exe -f config.txt "sv_port 8997"
start srv_mod_1.exe -f config.txt "sv_port 8998"
start srv_mod_1.exe -f config.txt "sv_port 8999"
start srv_mod_1.exe -f config.txt "sv_port 9000"
start srv_mod_2.exe -f config2.txt "sv_port 9001"
start srv_mod_2.exe -f config2.txt "sv_port 9002"
srv_mod_*.exe : Programme executable du serveur.
-f : Lance l'éxecutable avec la configuration inscrite dans le *.txt
Config*.txt : Configuration du serveur
Reboot du serveur :
server_reboot.bat
SHUTDOWN -r -t 45500
Reboot le serveur après 45500 secondes.
Lancement des serveurs après reboot :
srvs_reboot.bat
C:\start_srvs.bat
Relances les serveurs (srvs) après le redemarrage du serveur.
Ma question est : Comment faire pour passer ces script Batch, windows en shell Linux ?
Avez vous des liens pour des tutoriaux ?
Cordialement,
user313
Edit : Voilà à quoi ça ressemble sur windows : http://uploaded.net/file/koygd0nv
Dernière modification par user313 (Le 20/08/2012, à 13:48)
Hors ligne
#2 Le 20/08/2012, à 09:08
- serged
Re : Batch > Shell
J'ignore ce que font ces "srv_mod_1.exe".
S'il y a un logiciel équivalent "srv_mod" tu fais un script équivalent :
#!/bin/bash
srv_mod_1 -f /chemin/config.txt "sv_port 8997"
srv_mod_1 -f /chemin/config.txt "sv_port 8998"
srv_mod_1 -f /chemin/config.txt "sv_port 8999"
srv_mod_1 -f /chemin/config.txt "sv_port 9000"
srv_mod_2 -f /chemin/config2.txt "sv_port 9001"
srv_mod_2 -f /chemin/config2.txt "sv_port 9002"
"chemin" étant le chemin où sont ces config.txt
script que tu mets dans /etc/init.d (ou tu mets un lien symbolique vers ton script).
Pour redémarrer le serveur, c'est pareil !
shutdown -r -t 45500
LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)
Hors ligne
#3 Le 20/08/2012, à 13:38
- user313
Re : Batch > Shell
Bonjours,
Tout d'abord merci de votre réponse.
#!/bin/bash
srv_mod_1 -f /chemin/config.txt "sv_port 8997"
srv_mod_1 -f /chemin/config.txt "sv_port 8998"
srv_mod_1 -f /chemin/config.txt "sv_port 8999"
srv_mod_1 -f /chemin/config.txt "sv_port 9000"
srv_mod_2 -f /chemin/config2.txt "sv_port 9001"
srv_mod_2 -f /chemin/config2.txt "sv_port 9002"
Sur Linux ne faut-il pas aussi rajouter un start en début de chaque phrase pour indiquer que c'est une nouvelle ligne de commande ? On m'as parlé de "&&" ce qui donnerai :
#!/bin/bash
srv_mod_1 -f /chemin/config.txt "sv_port 8997"&&
srv_mod_1 -f /chemin/config.txt "sv_port 8998"&&
srv_mod_1 -f /chemin/config.txt "sv_port 8999"&&
srv_mod_1 -f /chemin/config.txt "sv_port 9000"&&
srv_mod_2 -f /chemin/config2.txt "sv_port 9001"&&
srv_mod_2 -f /chemin/config2.txt "sv_port 9002"
Je ne sais pas du tout si c'est possible, d'ailleur c'est pour cela que je viens sur ce forum .
____________________________________________________________________________
Dernière question :
Pour éxecuter un programme dès le démarrage de Linux, Est-ce que il y a un dossier comme sur win* ?
Cordialement,
user313
Hors ligne
#4 Le 20/08/2012, à 14:20
- credenhill
Re : Batch > Shell
hello
l'équivalent du start DOS, tâche en arrière-plan, c'est un seul & en fin de ligne
srv_mod_1 -f /chemin/config.txt "sv_port 8997" &
Hors ligne
#5 Le 21/08/2012, à 09:04
- serged
Re : Batch > Shell
Peut-être la version Linux du service (srv_mod_1) se détache toute seule et alors le & est inutile. Mais la là, faut voir avec la doc...
LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)
Hors ligne
#6 Le 21/08/2012, à 20:04
- user313
Re : Batch > Shell
Bonsoir,
Tout d'abord merci de vos réponses. Je penses qu'avec ça, je devrais m'en sortir un minimum .
je vais quand même proposer mon code ici pour que vous validiez :
#!/bin/bash
#Start mod_1
/home/domain_protocol.fr/srv_mod_1 -f /home/config-1_domain_protocol.fr.txt "sv_port 8997" &
/home/domain_protocol.fr/srv_mod_1 -f /home/config-1_domain_protocol.fr.txt "sv_port 8998" &
/home/domain_protocol.fr/srv_mod_1 -f /home/config-1_domain_protocol.fr.txt "sv_port 8999" &
/home/domain_protocol.fr/srv_mod_1 -f /home/config-1_domain_protocol.fr.txt "sv_port 9000" &
#Start mod_2
/home/domain_unknow/srv_mod_1 -f /home/config-1_domain_unknow.txt "sv_port 9001" &
/home/domain_unknow/srv_mod_1 -f /home/config-1_domain_unknow.txt "sv_port 9002" &
/home/domain_unknow/srv_mod_1 -f /home/config-1_domain_unknow.txt "sv_port 9003" &
Cordialement,
user313
Hors ligne
#7 Le 21/08/2012, à 20:31
- ljere
Re : Batch > Shell
je pense que ce serait plus lisible ainsi
#!/bin/bash
#Start mod_1
cd /home/domain_protocol.fr/
srv_mod_1 -f /home/config-1_domain_protocol.fr.txt "sv_port 8997" &
srv_mod_1 -f /home/config-1_domain_protocol.fr.txt "sv_port 8998" &
srv_mod_1 -f /home/config-1_domain_protocol.fr.txt "sv_port 8999" &
srv_mod_1 -f /home/config-1_domain_protocol.fr.txt "sv_port 9000" &
#Start mod_2
cd /home/domain_unknow/
srv_mod_1 -f /home/config-1_domain_unknow.txt "sv_port 9001" &
srv_mod_1 -f /home/config-1_domain_unknow.txt "sv_port 9002" &
srv_mod_1 -f /home/config-1_domain_unknow.txt "sv_port 9003" &
ancien PC Toshiba satellite_c670d-11 / Linux Mint 21 Vanessa
Nouveau PC ASUS TUF GAMING A17 GPU RTX 4070 CPU AMD Ryzen 9 7940HS w/ Radeon 780M Graphics / Linux Mint 21.2 Victoria / Kernel: 6.4.8-1-liquorix / Desktop: Cinnamon
Hors ligne
#8 Le 21/08/2012, à 20:35
- pingouinux
Re : Batch > Shell
Bonjour,
Pour info, ton script pourrait s'écrire ainsi :
#!/bin/bash
#Start mod_1
port=8997
while true
do
/home/domain_protocol.fr/srv_mod_1 -f /home/config-1_domain_protocol.fr.txt "sv_port $port" &
((++port>9000)) && break
done
#Start mod_2
port=9001 # Les numéros se suivant, cette ligne peut être omise
while true
do
/home/domain_unknow/srv_mod_1 -f /home/config-1_domain_unknow.txt "sv_port $port" &
((++port>9003)) && break
done
Ce n'est pas utile ici, mais ça présenterait de l'intérêt pour un nombre de commandes important.
Hors ligne
#9 Le 21/08/2012, à 20:40
- pingouinux
Re : Batch > Shell
@ ljere #7 :
C'est effectivement une bonne idée, mais je pense qu'il serait prudent de mettre le chemin :
./srv_mod_1 -f .....
Hors ligne
#10 Le 21/08/2012, à 21:08
- ljere
Re : Batch > Shell
oui j'ai hésité
ancien PC Toshiba satellite_c670d-11 / Linux Mint 21 Vanessa
Nouveau PC ASUS TUF GAMING A17 GPU RTX 4070 CPU AMD Ryzen 9 7940HS w/ Radeon 780M Graphics / Linux Mint 21.2 Victoria / Kernel: 6.4.8-1-liquorix / Desktop: Cinnamon
Hors ligne
#11 Le 21/08/2012, à 21:23
- Bousky
Re : Batch > Shell
Pour développer sur l'idée de pingouinux, en plus facilement modifiable (pas testé) :
#!/bin/bash
function start_mod {
for ((port="$3" ; port<="$4" ; port++)) ; do
"$1" -f "$2" "sv_port $port" &
done
}
############################################################
# lignes à modifier pour adapter à la configuration voulue #
# start_mod exécutable config port_dbt port_fin #
############################################################
# protocol.fr
start_mod /home/domain_protocol.fr/srv_mod_1 /home/config-1_domain_protocol.fr.txt 8997 9000
# unknown
start_mod /home/domain_unknow/srv_mod_1 /home/config-1_domain_unknow.txt 9001 9003
Les lignes commençant par "#" sont des commentaires, tu peux les supprimer ou les modifier sans soucis.
Dernière modification par Bousky (Le 21/08/2012, à 23:01)
Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)
Hors ligne
#12 Le 21/08/2012, à 22:56
- user313
Re : Batch > Shell
Bonsoir,
merci de vos réponses.
Pourrais je savoir comment fonctionne vos scripts ? Je ne suis pas assez calé en shell pour comprendre leur effets..
#!/bin/bash
#Start mod_1
port=8997
while true
do
/home/domain_protocol.fr/srv_mod_1 -f /home/config-1_domain_protocol.fr.txt "sv_port $port" &
((++port>9000)) && break
done
#Start mod_2
port=9001 # Les numéros se suivant, cette ligne peut être omise
while true
do
/home/domain_unknow/srv_mod_1 -f /home/config-1_domain_unknow.txt "sv_port $port" &
((++port>9003)) && break
done
part++))
D'après le peu de c++ que j'ai fais j'imagines que cette partie à pour effet de rajouter +1 ports (8997 + part++ = 8998 ?)
8997 9000
la limite des ports pour srv_mod_1 ?
Si je veut par exemple rajouter 3 serveurs sur le mod_1 je met dans le shell :
8997 9003 (?)
Cordialement,
user313
Hors ligne
#13 Le 21/08/2012, à 23:01
- Bousky
Re : Batch > Shell
part++))
D'après le peu de c++ que j'ai fais j'imagines que cette partie à pour effet de rajouter +1 ports (8997 + part++ = 8998 ?)
C'est ça. Sauf que c'est « port » au lieu de « part » (oups…).
8997 9000
la limite des ports pour srv_mod_1 ?
Si je veut par exemple rajouter 3 serveurs sur le mod_1 je met dans le shell :
8997 9003 (?)
Exactement. Tu peux aussi ajouter des lignes en les construisant sur le même modèle
Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)
Hors ligne
#14 Le 21/08/2012, à 23:20
- user313
Re : Batch > Shell
Pour développer sur l'idée de pingouinux, en plus facilement modifiable (pas testé) :
Pas testé mais ce script marche parfaitement
Merci beaucoup.
Je penses pas qu'avec un batch de windows on puisse faire ça, ce qui prouve que le pingouin est supérieur à la fenêtre
Cordialement,
user313
Hors ligne
#15 Le 22/08/2012, à 11:18
- Bousky
Re : Batch > Shell
Tux est un manchot, pas un pingouin
Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)
Hors ligne
#16 Le 22/08/2012, à 11:49
- ljere
Re : Batch > Shell
merci de passer ton sujet en résolu en modifiant le premier message et ajoute [Résolu] au titre.
ancien PC Toshiba satellite_c670d-11 / Linux Mint 21 Vanessa
Nouveau PC ASUS TUF GAMING A17 GPU RTX 4070 CPU AMD Ryzen 9 7940HS w/ Radeon 780M Graphics / Linux Mint 21.2 Victoria / Kernel: 6.4.8-1-liquorix / Desktop: Cinnamon
Hors ligne
Pages : 1