OVH Cloud OVH Cloud

Rebooter plusieurs serveurs d'après un fichier texte

3 réponses
Avatar
guytou77
Bonjour à tous,

Chaque jour au boulot je reboote une dizaine de serveurs. Je le reboote
manuellement un à un.
Les noms de serveurs à rebooter me sont fournis dans un fichier texte
(.txt).
Est-ce possible de créer un script SHELL qui va lire le fichier texte en
question et rebooter automatiquement les serveurs qui s'y trouvent?
Comment s'y prendre?
Par avance merci.
Guy

3 réponses

Avatar
Marc Lasson
guytou77 wrote:
Bonjour à tous,
Salut,


Chaque jour au boulot je reboote une dizaine de serveurs. Je le reboote
manuellement un à un.
Les noms de serveurs à rebooter me sont fournis dans un fichier texte
(.txt).


En utilisant ssh, c'est facile.

Supposons que le fichier est passé en argument (ou son contenu via la
sortie standard) et que chacune de ses lignes contiennent un et un seul
nom de domaine.

Le script suivant doit faire l'affaire:
-- Début du script --
#!/bin/sh
for hostname in $(cat $1) ; do
ssh $hostname reboot
done
-- Fin du script --

Biensûr il faut que l'utilisateur qui lance le script possède les droits
pour lancer le reboot sur la machine distante (pour changer de login,
utilisez l'option -l de ssh).

Pour ne pas avoir besoin de taper à chaque fois le mot de passe il peut
être nécessaire de déployer une authentification par clef public (C'est
expliqué là: <http://sial.org/howto/openssh/publickey-auth/>).

--
Marc Lasson.

Avatar
Kevin Denis
Le 29-08-2005, guytou77 a écrit :

Chaque jour au boulot je reboote une dizaine de serveurs. Je le reboote
manuellement un à un.
Les noms de serveurs à rebooter me sont fournis dans un fichier texte
(.txt).
Est-ce possible de créer un script SHELL qui va lire le fichier texte en
question et rebooter automatiquement les serveurs qui s'y trouvent?
Comment s'y prendre?
Par avance merci.

Un genre de:


for serveur in `cat fichier_texte.txt`
do
ssh -l root $serveur /sbin/reboot
done

Mais ca depend de tellement de facteur
-comment est ecrit le fichier texte
-comment rebootes tu les serveurs
-la conf des authorized_keys de ssh
etc..
--
Kevin

Avatar
guytou77
Bonjour à Tous,
Merci à Marc Lasson pour son éclairage.
J'attends toujours d'autres pistes pour mieux cerner le problème.
Merci par avance!!
GUY

"Marc Lasson" a écrit dans le message de news:
43132dee$0$30677$
guytou77 wrote:
Bonjour à tous,
Salut,


Chaque jour au boulot je reboote une dizaine de serveurs. Je le reboote
manuellement un à un.
Les noms de serveurs à rebooter me sont fournis dans un fichier texte
(.txt).


En utilisant ssh, c'est facile.

Supposons que le fichier est passé en argument (ou son contenu via la
sortie standard) et que chacune de ses lignes contiennent un et un seul
nom de domaine.

Le script suivant doit faire l'affaire:
-- Début du script --
#!/bin/sh
for hostname in $(cat $1) ; do
ssh $hostname reboot
done
-- Fin du script --

Biensûr il faut que l'utilisateur qui lance le script possède les droits
pour lancer le reboot sur la machine distante (pour changer de login,
utilisez l'option -l de ssh).

Pour ne pas avoir besoin de taper à chaque fois le mot de passe il peut
être nécessaire de déployer une authentification par clef public (C'est
expliqué là: <http://sial.org/howto/openssh/publickey-auth/>).

--
Marc Lasson.