Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 03/12/2010, à 12:47

tggege

Script pour arreter redemarer un serveur LTSP[Résolu]

bonjour je cherche un script pour pouvoir arrêter redémarrer un serveur LTSP afin de pourvoir utiliser ma carte ethernet lorsque je n'est pas de réseau wifi.

J'y arrive manuellement en modifiant à la main les fichiers de config suivant

Démarrage:

sudo gedit /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
sudo gedit /etc/default/dhcp3-server
# Defaults for dhcp initscript
# sourced by /etc/init.d/dhcp
# installed at /etc/default/dhcp3-server by the maintainer scripts

#
# This is a POSIX shell fragment
#

# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
#    Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACES="eth0"

POUR FINIR

sudo /etc/init.d/networking start
sudo /etc/init.d/dhcp3-server start

Voila maintenant je peux utiliser mon serveur LTSP

Arrêt

J'effectue la manip inverse

sudo gedit /etc/network/interfaces
auto lo
iface lo inet loopback
sudo gedit /etc/default/dhcp3-server
# Defaults for dhcp initscript
# sourced by /etc/init.d/dhcp
# installed at /etc/default/dhcp3-server by the maintainer scripts

#
# This is a POSIX shell fragment
#

# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
#    Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACES=""

POUR FINIR

sudo /etc/init.d/networking stop
sudo /etc/init.d/dhcp3-server stop

Voila maintenant je peux utiliser mon port ethernet pour me connecter au réseau locale.





Si quelqu'un pourrait m'aider à réaliser ce script pour automatiser cette tache ce serais super

Merci

Dernière modification par tggege (Le 04/12/2010, à 19:47)

Hors ligne

#2 Le 03/12/2010, à 17:57

tggege

Re : Script pour arreter redemarer un serveur LTSP[Résolu]

Voila un début ceci est mon tout premier script

Démarrage:

#!/bin/bash

echo "Modification des interfaces..."
sudo cp -f /home/$USER/ltsp/demarrage/interfaces /etc/network/interfaces

echo "Modification du serveur DHCP..."
sudo cp -f /home/$USER/ltsp/demarrage/dhcp3-server /etc/default/dhcp3-server

echo "Redémarrage du réseau..."
sudo /etc/init.d/networking restart

echo "Démarrage du serveur DHCP..."
sudo /etc/init.d/dhcp3-server start

echo "Redémarrage du Network-Manager"
sudo service network-manager restart

read -p "Appuyer sur Entree pour continuer"
exit 0;

Arrêt

#!/bin/bash

echo "Modification des interfaces..."
sudo cp -f /home/$USER/ltsp/arret/interfaces /etc/network/interfaces

echo "Modification du serveur DHCP..."
sudo cp -f /home/$USER/ltsp/arret/dhcp3-server /etc/default/dhcp3-server

echo "Redémarrage du réseau..."
sudo /etc/init.d/networking restart

echo "Arrêt du serveur DHCP..."
sudo /etc/init.d/dhcp3-server stop

echo "Redémarrage du Network-Manager"
sudo service network-manager restart

read -p "Appuyer sur Entree pour continuer"
exit 0;

Existe t'il une commande permettant de modifier un fichier sans détruire celui puis le remplacer par un autre? (voir ma commande cp-f)

Et enfin le top serai d'avoir une interface graphique  permettant de choisir entre démarrage, arrêt et statut (savoir ci le serveur fonctionne ou non). Mais sa je pense ne pas en être capable

Merci

edit: script non fonctionnel

Dernière modification par tggege (Le 04/12/2010, à 19:44)

Hors ligne

#3 Le 03/12/2010, à 20:37

tggege

Re : Script pour arreter redemarer un serveur LTSP[Résolu]

up

Hors ligne

#4 Le 04/12/2010, à 13:40

tggege

Re : Script pour arreter redemarer un serveur LTSP[Résolu]

j'ai essayé les fonctions suivantes pour mon menu mais cela ne fonctionne pas
Je pense que c'est juste pour lancer des programmes

Que faut 'il changer à ce code???

#!/bin/bash
fct_menu ()
{
echo
echo "Choisissez une option [1-5]"
echo
echo "1 : programme 1"
echo "2 : programme 2"
echo
echo "3 : programme 3"
echo "4 : programme 4"
echo "5 : quitter"
echo "veuillez choisir :"

read optionmenu
    case $optionmenu in
    1)
        echo "lancement du programme 1"
        /usr/bin/programme1& ; exit;;
    2)
        echo "lancement du programme 2"
        /usr/bin/programme2& ; exit;;
    3)
        echo "lancement du programme 3"
        /usr/bin/programme3& ; exit;;
    4)
        echo "lancement du programme 4"
        /usr/bin/programme4& ; exit;;
    5)
        exit;;
    *)
        echo "erreur de frappe"
        fct_menu;;
        esac
}
fct_menu

Dernière modification par tggege (Le 04/12/2010, à 14:23)

Hors ligne

#5 Le 04/12/2010, à 13:51

Levi59

Re : Script pour arreter redemarer un serveur LTSP[Résolu]

Salut! Pour le dernier bout de code, il y a une erreur sur la première ligne (# oublié) et je ne suis pas sûr que les & soit nécessaires avant les point virgules.

Pour ton script, plutôt que de faire un copier-collé, tu peux utiliser sed qui te permet de faire des substitutions de texte pour par exemple, commenter-décommenter les lignes.

Dernière modification par Levi59 (Le 04/12/2010, à 14:02)

Hors ligne

#6 Le 04/12/2010, à 14:23

tggege

Re : Script pour arreter redemarer un serveur LTSP[Résolu]

Le # à été juste oublier lors du copier coller vers se post je vais chercher une doc de sed.

Hors ligne

#7 Le 04/12/2010, à 16:20

tggege

Re : Script pour arreter redemarer un serveur LTSP[Résolu]

Voila mon script sans la commande copier coller .
Merci à Levi59

Démarrage

#!/bin/bash

echo "Modification des interfaces..."
sudo sed -i '2a\auto eth0\' /etc/network/interfaces
sudo sed -i '3a\iface eth0 inet static\' /etc/network/interfaces
sudo sed -i '4a\address 192.168.0.1\' /etc/network/interfaces
sudo sed -i '5a\netmask 255.255.255.0\' /etc/network/interfaces
sudo sed -i '6a\broadcast 192.168.0.255' /etc/network/interfaces
sudo sed -i '7a\gateway 192.168.0.1\' /etc/network/interfaces

echo "Modification du serveur DHCP..."
sudo sed -i '11d' /etc/default/dhcp3-server
sudo sed -i '10a\INTERFACES="eth0"\' /etc/default/dhcp3-server

echo "Redémarrage du réseau..."
sudo /etc/init.d/networking restart

echo "Démarrage du serveur DHCP..."
sudo /etc/init.d/dhcp3-server start

echo "Redémarrage du Network-Manager"
sudo service network-manager restart

echo "Redémarrage du serveur SSH"
sudo /etc/init.d/ssh restart

read -p "Appuyer sur Entrée pour continuer"
exit 0;

Arrêt

#!/bin/bash

echo "Modification des interfaces..."
sudo sed -i '3,8d' /etc/network/interfaces

echo "Modification du serveur DHCP..."
sudo sed -i '11d' /etc/default/dhcp3-server
sudo sed -i '10a\INTERFACES=""\' /etc/default/dhcp3-server

echo "Redémarrage du réseau..."
sudo /etc/init.d/networking restart

echo "Arret du serveur DHCP..."
sudo /etc/init.d/dhcp3-server stop

echo "Redémarrage du Network-Manager"
sudo service network-manager restart

echo "Redémarrage du serveur SSH"
sudo /etc/init.d/ssh restart

read -p "Appuyer sur Entrée pour continuer"
exit 0;

Statut

#!/bin/bash

echo "Vérification du statut du serveur LTSP"
/etc/init.d/dhcp3-server status

read -p "Appuyer sur Entree pour continuer"
exit 0;

Il me reste plus que maintenant à trouver la commande pour créer un menu que je cherche, celle ci dessus ne fonctionne pas.
Ci quelqu'un la connait merci de me l'indiquer.

Ps lien vers doc SED
http://www.commentcamarche.net/faq/sed-478

edit: script fonctionnel mais nécessite 3 fichiers alors que dans celui dans dessous tout est réunit en un seul

Dernière modification par tggege (Le 04/12/2010, à 19:43)

Hors ligne

#8 Le 04/12/2010, à 16:41

Levi59

Re : Script pour arreter redemarer un serveur LTSP[Résolu]

J'avais créé ma propre version du script mais je ne l'ai pas testé donc à voir.
Pour le premier lancement, il faut renseigner les fichiers comme si tu voulais être connecté en fixe.
Confere cette adresse:
http://scriptam.over-blog.com/article-s … 43594.html

Dernière modification par Levi59 (Le 04/12/2010, à 19:31)

Hors ligne

#9 Le 04/12/2010, à 17:01

tggege

Re : Script pour arreter redemarer un serveur LTSP[Résolu]

ton script renvoi l'erreur suivante

script.sh -start
erreur : mauvaise option ou option absente

Hors ligne

#10 Le 04/12/2010, à 17:12

Levi59

Re : Script pour arreter redemarer un serveur LTSP[Résolu]

Il ne faut pas utiliser de tiret devant l'option et il y a une erreur.
J'ai édité le code de mon post. Tu peux réessayer?

Hors ligne

#11 Le 04/12/2010, à 17:33

tggege

Re : Script pour arreter redemarer un serveur LTSP[Résolu]

encore une erreur

sed: -e expression n°1, caractère 1: commande inconnue: `,'
sed: pas de fichiers en entrée
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service networking start

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the start(8) utility, e.g. start networking
networking stop/waiting
 * Starting DHCP server dhcpd3                                                   
* check syslog for diagnostics.
                                                                         [fail]

Hors ligne

#12 Le 04/12/2010, à 17:48

tggege

Re : Script pour arreter redemarer un serveur LTSP[Résolu]

Je revient plus tard sur le forum.
Je reste à ta disposition

Hors ligne

#13 Le 04/12/2010, à 17:48

Levi59

Re : Script pour arreter redemarer un serveur LTSP[Résolu]

Pour les 2 premières lignes, ca viens de sed et du script donc j'ai corrigé (cf post précédent)

Pour le reste, ca vient du redémarrage des services. donc pour l'instant on va essayer de faire marcher le script dans son rôle d'édition.

Hors ligne

#14 Le 04/12/2010, à 18:02

tggege

Re : Script pour arreter redemarer un serveur LTSP[Résolu]

toujours la même erreur

Hors ligne

#15 Le 04/12/2010, à 18:08

Levi59

Re : Script pour arreter redemarer un serveur LTSP[Résolu]

C'est bizarre, je n'ai pas d'erreur ici...

Il y a toujours l'erreur pour sed, pour init ou pour les deux?

edit j'ai modifier les lignes init.d dans mon post précédent. essaye avec celle là.
Question con. Tu l'as rendu exécutable? remarque, il ne donnerais rien sinon...

Dernière modification par Levi59 (Le 04/12/2010, à 18:09)

Hors ligne

#16 Le 04/12/2010, à 18:10

tggege

Re : Script pour arreter redemarer un serveur LTSP[Résolu]

les deux mais j'ai regardé ton fichier de plus prés je n'ai pas
auto eth0
dans /etc/network/interfaces

Dois-je le rajouter??

Hors ligne

#17 Le 04/12/2010, à 18:20

Levi59

Re : Script pour arreter redemarer un serveur LTSP[Résolu]

Il faut être dans cette configuration pour l'utiliser:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
# Defaults for dhcp initscript
# sourced by /etc/init.d/dhcp
# installed at /etc/default/dhcp3-server by the maintainer scripts

#
# This is a POSIX shell fragment
#

# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
#    Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACES="eth0"

l'option stop commente interface et supprime eth0 puis redémarre les services.
l'option start décommente  interface et ajoute eth0 puis redémarre les services.
l'option stat indique juste si les 2 fichiers sont bien en mode ip fixe

Hors ligne

#18 Le 04/12/2010, à 18:33

tggege

Re : Script pour arreter redemarer un serveur LTSP[Résolu]

Ok j'avais pas compris les fonctions de ton fichier
à savoir
l'option stop commente interface et supprime eth0 puis redémarre les services.
l'option start décommente  interface et ajoute eth0 puis redémarre les services.
l'option stat indique juste si les 2 fichiers sont bien en mode ip fixe


Tout fonctionne normalement.
Est-il possible de modifier ce fichier pour qu'il s'exécute sans passer par le terminal?
Cad double clique puis ouverture du terminal demandent les différentes options
start,stop,stat

Merci vraiment à toi
ceci étant mes premiers pas dans la création d'un script

Dernière modification par tggege (Le 04/12/2010, à 18:36)

Hors ligne

#19 Le 04/12/2010, à 18:55

tggege

Re : Script pour arreter redemarer un serveur LTSP[Résolu]

voila j'ai éditer ton fichier pour le mettre à ma sauce

option start,stop
j'ai rajouté la ligne pour redémarrer le network manager

option stop
j'ai modifier sudo service networking stop
en sudo service networking restart
pour que le service redémarre sans arrêt du pc.

#!/bin/bash

# fichiers de conf
export netint="/etc/network/interfaces"
export dhcpserv="/etc/default/dhcp3-server"

# recuperer ligne de config des fichiers
netintconf=`cat $netint | grep "auto eth0"`
dhcpservconf=`cat $dhcpserv | grep "INTERFACES="` 

# numero de la première ligne à modifier
linenetint=`grep -n "auto eth0" $netint | awk -F ":" '{print $1}'`
linedhcpserv=`grep -n "INTERFACES=" $dhcpserv | awk -F ":" '{print $1}'`


case "$1" in

start)

sudo sed -i ''$linenetint',+5 s/^#*//g' $netint
sudo sed -i ''$linedhcpserv' s/""/"eth0"/g' $dhcpserv
sudo /etc/init.d/networking start
sudo /etc/init.d/dhcp3-server start
sudo service network-manager restart
;;

stop)

if [ "$netintconf" == "#auto eth0" ] && [ "$dhcpservconf" == "INTERFACES=\"\"" ]
then
echo "Serveur LTSP deja aretter"
else
sudo sed -i ''$linenetint',+5 s/^/#/g' $netint
sudo sed -i ''$linedhcpserv' s/"eth0"/""/g' $dhcpserv
sudo /etc/init.d/networking restart
sudo /etc/init.d/dhcp3-server stop
sudo service network-manager restart
fi
;;

stat)

if [ "$netintconf" == "auto eth0" ] && [ "$dhcpservconf" == "INTERFACES=\"eth0\"" ]
then
echo "Serveur LTSP actuellement en fontionement"
else
echo "Serveur LTSP actuellemnt arrêté"
fi
;;

*)
echo "erreur : mauvaise option ou option absente"
echo "les commandes sont: start/stop/stat"
exit

esac 

exit

Maintenant le script fonctionne parfaitement sans redémarrage du pc

Hors ligne

#20 Le 04/12/2010, à 19:13

Levi59

Re : Script pour arreter redemarer un serveur LTSP[Résolu]

Ok! J'ai repris le network-manager restart pour le mettre sur le script. J'en ai profité pour le mettre sur mon blog et l'étoffer un peu donc si tu veux une version plus récente tu peux y aller.

Pour le lancer en graphique tu peux remplacer les echo par un affichage via gdialog ou zenity par exemple. lance le via "gksudo lescript" pour avoir les droits sans passer par la console.

N'oublie pas le résolu!

Dernière modification par Levi59 (Le 04/12/2010, à 19:15)

Hors ligne

#21 Le 04/12/2010, à 19:19

tggege

Re : Script pour arreter redemarer un serveur LTSP[Résolu]

une dernière modif encore

puis c'est terminer

le serveur ssh doit être également redémarré
j'ai rajouter aussi quelque echo pour savoir ou en est le déroulement du script
j'ai également rajouté les accents et corriger quelques fautes

#!/bin/bash

# fichiers de conf
export netint="/etc/network/interfaces"
export dhcpserv="/etc/default/dhcp3-server"

# récupérer ligne de config des fichiers
netintconf=`cat $netint | grep "auto eth0"`
dhcpservconf=`cat $dhcpserv | grep "INTERFACES="` 

# numéro de la première ligne à modifier
linenetint=`grep -n "auto eth0" $netint | awk -F ":" '{print $1}'`
linedhcpserv=`grep -n "INTERFACES=" $dhcpserv | awk -F ":" '{print $1}'`


case "$1" in

start)

sudo sed -i ''$linenetint',+5 s/^#*//g' $netint
sudo sed -i ''$linedhcpserv' s/""/"eth0"/g' $dhcpserv
echo "Redémarrage du réseau..."
sudo /etc/init.d/networking restart
echo "Démarrage du serveur DHCP..."
sudo /etc/init.d/dhcp3-server start
echo "Redémarrage du Network-Manager"
sudo service network-manager restart
echo "Redémarrage du serveur SSH"
sudo /etc/init.d/ssh restart
;;

stop)

if [ "$netintconf" == "#auto eth0" ] && [ "$dhcpservconf" == "INTERFACES=\"\"" ]
then
echo "Serveur LTSP déjà arrêter"
else
sudo sed -i ''$linenetint',+5 s/^/#/g' $netint
sudo sed -i ''$linedhcpserv' s/"eth0"/""/g' $dhcpserv
echo "Redémarrage du réseau..."
sudo /etc/init.d/networking restart
echo "Arret du serveur DHCP..."
sudo /etc/init.d/dhcp3-server stop
echo "Redémarrage du Network-Manager"
sudo service network-manager restart
echo "Redémarrage du serveur SSH"
sudo /etc/init.d/ssh restart
fi
;;

stat)

if [ "$netintconf" == "auto eth0" ] && [ "$dhcpservconf" == "INTERFACES=\"eth0\"" ]
then
echo "Serveur LTSP actuellement en fonctionnement"
else
echo "Serveur LTSP actuellement arrêté"
fi
;;

*)
echo "erreur : mauvaise option ou option absente"
echo "les commandes sont: start/stop/stat"
exit

esac 

exit

Dernière modification par tggege (Le 04/12/2010, à 19:34)

Hors ligne

#22 Le 04/12/2010, à 19:28

Levi59

Re : Script pour arreter redemarer un serveur LTSP[Résolu]

J'avais ignoré les accents car il passent parfois mal sur certain terminal mais je crois que de ton coté tu as oublié des guillemets pour les echo...^^

Hors ligne

#23 Le 04/12/2010, à 19:35

tggege

Re : Script pour arreter redemarer un serveur LTSP[Résolu]

voila les guillemets sont corriger post éditer

Hors ligne

#24 Le 04/12/2010, à 19:38

Levi59

Re : Script pour arreter redemarer un serveur LTSP[Résolu]

N'oublie pas de mettre un [résolu] dans le titre du topic

Hors ligne

#25 Le 04/12/2010, à 19:46

tggege

Re : Script pour arreter redemarer un serveur LTSP[Résolu]

oui j'allais le faire des maintenant après mes édit de mes précédents post

Hors ligne