bash : script de vérification sur serveur - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 12-03-2015 à 15:04:39
si ce n'est pas pour "l'exercice de le concevoir" tu devrais TRES VIVEMENT t'intéresser à des outils de config management comme puppet et chef, voire ansible et salt. tu peux aussi utiliser fabric pour ça
Marsh Posté le 12-03-2015 à 15:35:32
Hello,
As tu vérifié le format de fichier tu lui passes, je suppose que le while read line s'appuie sur le saut de ligne Unix ?!
je viens de tester sur une machine et ça crache bien ligne par ligne le truc :
Code :
|
Code :
|
Marsh Posté le 12-03-2015 à 16:28:28
Effectivement je viens d'essayer avec un ssh $liste 'uname -a' en boucle et seul le premier passe.
il te faut ajouter l'option -n à ssh pour que cela fonctionne :
Code :
|
J'ai trouvé la solution ici :
http://www.linuxquestions.org/ques [...] dy-798036/
autre solution :
Code :
|
Marsh Posté le 12-03-2015 à 14:26:11
Bonjour,
Je cherche à mettre au point un petit script bash pour effectuer les actions suivantes :
* lire un fichier de paramétrage qui contient une liste de serveur/adresses ip.
* connexion sur chacun de ces serveurs/adresses ip.
* check d'un certain nombre de paramètres : version précise de l'os du serveur, vérification du fichier /etc/resolv.conf
J'ai commencé avec les lignes suivantes :
#!/bin/bash
# Script de controle de serveur
# Declaration variable liste contenant la liste des serveurs
liste=/tmp/liste_serveurs.txt
# Boucle de lecture du fichier et affichage /etc/redhat-release des serveurs
while read line
do
ssh root@"$line" cat /etc/redhat-release
done < $liste
Je précise que je suis autorisé à me connecter en tant que user root sur les serveurs que je souhaite checker
Problème : le script lit juste la première ligne du fichier, m'affiche le contenu de /etc/redhat-release & sort du script
J'ai essayé de rajouter un sleep dans ma boucle mais ça ne change rien.
Bref, je suis coincé