Script pour éteindre les machines - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 15-05-2008 à 09:33:04
Oui c'est possible. Via SSH + cron par exemple.
Marsh Posté le 15-05-2008 à 09:39:29
D'accord. Je vais m'y mettre alors. Je posterai si j'ai besoin de plus d'aide
Merci
Marsh Posté le 15-05-2008 à 09:40:44
Pour te logguer sur des machines, utilises le mécanisme de clé, ca sera plus simple pour le mettre dans un cron.
Ton parc est homogène ? Quels OS sont présents ?
Marsh Posté le 15-05-2008 à 09:45:48
Merci pour le conseil, le parc est homogène oui, toutes les machines tournent sous Mandriva.
Marsh Posté le 15-05-2008 à 09:51:19
Au départ je pensais lancer le script à partir du déploiement de OCS Inventory que j'ai récemment installé. Mais je ne vois pas comment je peut fixer l'heure, à part lancer le déploiement à l'heure d'extinction voulue.
EDIT : Je viens de voir que dans la commande shutdown il est possible de mettre une heure en paramètre, tu penses que c'est plus facile de faire comme ça ?
Marsh Posté le 15-05-2008 à 10:27:08
mimix08 a écrit : Au départ je pensais lancer le script à partir du déploiement de OCS Inventory que j'ai récemment installé. Mais je ne vois pas comment je peut fixer l'heure, à part lancer le déploiement à l'heure d'extinction voulue. |
C'est pas un temps dans la commande shutdown plutôt ?
Genre dans x secondes ?
Mais la crontab doit pouvoir t'aider pour une heure fixe par contre.
Marsh Posté le 15-05-2008 à 10:30:26
SHUTDOWN(8) Manuel de l'administrateur Linux SHUTDOWN(8)
NOM
shutdown - arrêter le système.
SYNOPSIS
/sbin/shutdown [-t sec] [-arkhncfF] heure [message-avertissement]
L'argument heure peut avoir différents formats. Primo, il peut être
dans le format absolu hh:mm, dans lequel hh est l'heure (1 ou 2
chiffres) et mm la minute de l'heure (sur deux chiffres). Secundo, il
peut être au format +m, dans lequel m est le nombre de minutes à atten‐
dre. Le mot now est un synonyme pour +0.
Marsh Posté le 15-05-2008 à 11:58:13
a mon avis la meilleur solution reste un script cronné qui fait des shutdown via SSH.
Tu le fais depuis une machine vers toutes les autres comme ca c est plus simple a maintenir
Marsh Posté le 15-05-2008 à 11:59:57
Ok je te remercie, je vais garder cette solution alors
Je pense avoir réussi, j'ai générer les clés sur ma machine puis ai copié la clé publique dans authorized_keys sur toutes les machines, à partir de là plus besoin de pass pour le ssh.
Ensuite petit script tout simple qui regroupe toutes les commandes :
#! /bin/sh
ssh 172.31.26.63 shutdown -h now
ssh 172.31.26.64 shutdown -h now
ssh 172.31.26.65 shutdown -h now
......
Et ça fonctionne.
Merci pour vos conseils
Marsh Posté le 15-05-2008 à 15:31:07
Au lieu de déployer un script qui éteind les machines, déploie un script qui installe dans la crontab un script qui éteind la machine. Comme ça tu n'as pas besoin de te logger sur chaque machine chaque jour.
Marsh Posté le 15-05-2008 à 15:39:46
tu as plusieur facons :
- un script que tu cron sur une machine centrale qui fait un truc du genre : ssh hostname "shutdown"
- un truc peu plus complexe a base de 2 scripts un manager qui fait les requetes d execution d un autre script qui lui est sur les serveur a eteindre.
Marsh Posté le 15-05-2008 à 15:42:16
matafan a écrit : Au lieu de déployer un script qui éteind les machines, déploie un script qui installe dans la crontab un script qui éteind la machine. Comme ça tu n'as pas besoin de te logger sur chaque machine chaque jour. |
mouais, je suis pas trop adept, je prefere un ordonnanceur centralisé c'est plus facil a gerer je trouve
Marsh Posté le 15-05-2008 à 16:00:16
Comme le_Tolier.
Le mieux c'est d'avoir des fichier de conf avec toutes tes machine par groupe (genre la liste des serveurs Oracle, des serveurs truc, des station, etc) et de lancer ton script avec un de ces fichiers en paramètre.
Par contre attention si une machine est planté ou au tas ton ssh risque de bloquer, donc il faut au choix :
-réduire le timeout de ssh.conf (coté client).
-tester que la machine est bien dispo avant de lancer la commande.
-faire des traitements en // sachant qu'il faut dans ce cas faire très attention à la gestion du fichier de log qui va être complètement pourrie vu que les connexions vont être toutes mélangés.
Voir les 3 c'est le mieux, par ce que par expérience si t'as un serveur à moitié planté ton ssh peut rester bloquer pendant très longtemps donc ton script peut rester planter avec la moitier de tes serveurs pas eteints.
Marsh Posté le 19-05-2008 à 15:47:55
Merci pour vos conseils. Je vais essayer tout ça et voir ce qui fonctionne le mieux
Marsh Posté le 15-05-2008 à 09:31:13
Bonjour,
je poste ce sujet pour vous demander un peu d'aide, en effet je ne vous demande pas un script tout fait, mais juste savoir si c'est possible, et comment.
Voila le problème, j'aimerai à partir de ma machine, éxecuter le script qui éteindrait les machines qui sont sur mon réseau, et ceci à une heure précise tout les jours. En sachant qu'elles ne sont peut être pas toutes allumées lors de l'execution.
Voila j'attends vos réponses
Merci d'avance.