[HS] - script de relève d'information

1 réponse
Avatar
Nahliel Steinberg
Bonjour,

J'essai de faire un script pour relever les version des OS de mes serveurs =
+ ip et d'autres infos que je rajouterai.

Je n'arrive pas =E0 mettre en page dans un fichier texte, par exemple l'ip =
+ la version

J'aimerai =E0 terme avoir

hostname : ip : version os

J'ai commenc=E9 comme =E7a :
#!/bin/bash
set +x

rm -Rf version

cat iptotalok | while read ip host;=20
do=20
echo $ip | ssh -A -n root@$ip "cat /etc/issue" >> version 2>&1 ; =
=20

done
exit

Il ne m'affiche pas l'ip =E0 cot=E9 de la version

Pouvez-vous m'aider ?


--=20
Nahliel

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/20131120091742.4d407df06f23ea46c18e7681@gmail.com

1 réponse

Avatar
Sylvain L. Sauvage
Le mercredi 20 novembre 2013 09:17:42 Nahliel Steinberg a écrit
:
Bonjour,



’jour,

[…]
rm -Rf version



`version` est un fichier, le -R n’a aucun intérêt.

cat iptotalok | while read ip host;



UUOC¹ : `while … done < iptotalok`

¹ utilisation inutile de cat

do
echo $ip | ssh -A -n root@$ip "cat /etc/issue" >>
version 2>&1 ;



Les options -A et -n de ssh n’ont pas d’intérà ªt ici.

Le tube envoie la sortie en entrée de la commande qui suit.
Comme ssh a déjà une commande en paramètre, c’es t elle qui est
exécutée donc l’IP envoyée ne gêne pas.
Ce que tu veux, c’est concaténer la sortie de deux comma ndes,
pas envoyer la sortie de la première en entrée de la seconde. Il
suffit donc simplement d’exécuter les commandes l’ une après
l’autre.

Et pour qu’`echo` n’envoie pas de fin de ligne (et do nc que la
suite soit sur la même ligne), utilise son option `-n`.

echo -n $ip >> version
ssh … >> version


Dans des cas plus complexes, p.ex. pour envoyer la sortie de
plusieurs commandes en entrée d’une autre, on peut grouper les
commandes, soit dans une fonction :

bla() {
cmd-1
cmd-2
}
bla | cmd-3

soit dans un sous-shell :

(cmd-1 && cmd-2) | cmd-3

soit plus simplement dans une liste :

{ cmd-1; cmd-2; } | cmd-3

done
exit



Le exit ne sert pas à grand-chose si tu ne changes pas le code
de retour (`help exit`).

Il ne m'affiche pas l'ip à coté de la version

Pouvez-vous m'aider ?



Lis la page de man de dash en entier (courte et complète). Si
tu n’es pas à l’aise avec l’anglais, lis c elle de bash, même si
elle est plus complexe, elle existe en français.
Lis toujours les pages de man des programmes (et `help` pour
les commandes du shel) que tu utilises pour vérifier leurs
options.
Et, surtout avant de les mettre dans une boucle, essaie tes
commandes.

--
Sylvain Sauvage

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/