Bonjour,
nous préparons un programme qui à partir d'une liste d'adresse IP va effectuer le contrôle des paquets et enfin indiquer les paquets critique à mettre à jour.
le programme fonctionne parfaitement lorsque nous mettons les IP en "dur" dans le script sans la boucle "for"
#!/bin/bash -x
IP_DEBIAN=`cat list.txt`
NOW=`date "+%d-%m-%y"`
for i in $IP_DEBIAN
do
echo $i
DEBIAN_VERSION_NUMERIQUE=`ssh $i cat /etc/debian_version | cut -d . -f 1`
case $DEBIAN_VERSION_NUMERIQUE in
4) DEBIAN_VERSION="etch"
;;
5) DEBIAN_VERSION="lenny"
;;
6) DEBIAN_VERSION="squeeze"
;;
7) DEBIAN_VERSION="wheezy"
;;
*) DEBIAN_VERSION="error"
;;
esac
HOST=`ssh $i cat /etc/hostname`
ssh $i debsecan --suite $DEBIAN_VERSION --format packages --only-fixed >> /tmp/check_package_$HOST_$NOW.txt
done
Merci pour vos réponses nous avons revue le programme en modifiant l’exécution de la façon suivante
#!/bin/bash -x
IP_DEBIAN=`cat list.txt`
NOW=`date "+%d-%m-%y"`
for i in $IP_DEBIAN
do
echo $i
DEBIAN_VERSION_NUMERIQUE=`ssh $i cat /etc/debian_version | cut -d . -f 1`
case $DEBIAN_VERSION_NUMERIQUE in
4) DEBIAN_VERSION="etch"
;;
5) DEBIAN_VERSION="lenny"
;;
6) DEBIAN_VERSION="squeeze"
;;
7) DEBIAN_VERSION="wheezy"
;;
*) DEBIAN_VERSION="error"
;;
esac
HOST=`ssh $i cat /etc/hostname`
ssh $i debsecan --suite $DEBIAN_VERSION --format packages --only-fixed >> /tmp/check_package_$HOST_$NOW.txt
done
# Mise en page
Posté par Marotte ⛧ . Évalué à 3.
http://linuxfr.org/wiki/aide-edition
[^] # Re: Mise en page
Posté par hakhak91 . Évalué à -2.
désolé pour la syntaxe mais rien que de faire le diez de façon convenable ainsi que les côtes avec AtlGr+7 c'est compliqué
[^] # Re: Mise en page
Posté par NeoX . Évalué à 4.
utilise les ``` puis le langage utilisé, en debut de paragraphe
et une nouvelle serie ``` pour fermer le paragraphe de code
ca te fait la jolie coloration que j'ai mise sur ton poste.
exemple :
bash :
perl :
etc
etc
[^] # Re: Mise en page
Posté par totof2000 . Évalué à 2.
Moi les côtes, je les préfère bleues quand c'est du boeuf, et bien grillées pour le porc.
A moins que tu ne parles des ports de la côte ?
Sinon si tu veux d'épargner les problèmes de quotes inversées, utilise $(..).
# Problème du journal?
Posté par reno . Évalué à 3.
Parce que "IP_DEBIAN=cat list.txt" ça me parait curieux, ça marche ça?
echo $IP_DEBIAN donne quoi?
# Boucle while
Posté par zipe31 . Évalué à 1.
Salut,
Et puis pourquoi ne pas lire directement le fichier avec une boucle "while" ?
;-)
[^] # Re: Boucle while
Posté par totof2000 . Évalué à 2.
On pourrait. Mais là je pense avoir repéré 2 problèmes :
- les ' ' autour de EOF
- la commande après le for sans $( ) ou ``
[^] # Re: Boucle while
Posté par totof2000 . Évalué à 2.
Bon je viens de teste rle coup des quotes autour de EOF, et ça ne pose pas problème :
# quotes ?
Posté par olaf . Évalué à 1.
ça ne serait pas mieux ainsi : ?
[^] # Re: quotes ?
Posté par hakhak91 . Évalué à 0.
C'est mon poste sur le message qui est mal enregistré mais sur le fichier original nous avons bien les côtes.
[^] # Re: quotes ?
Posté par totof2000 . Évalué à 2.
il vaut mieux utiliser $( ) : l'un des avantages est que tu peux les imbriquer.
[^] # Re: quotes ?
Posté par Allan Simon (site web personnel) . Évalué à 1. Dernière modification le 15 mai 2013 à 21:54.
Rien à voir, mais vu qu'un commentaire précédents faisaient la remarque sans te corriger
on dit "quote" (plus ou moins "kuote" en phonétique à l'arrache) en Anglais (d'où je pense la confusion avec "côte" en Français), j'avoue avoir mis un peu de temps à comprendre.
[^] # Re: quotes ?
Posté par totof2000 . Évalué à 2. Dernière modification le 16 mai 2013 à 15:41.
Je fais pareil : remarque sans corriger … ;)
(Pas moyen avec la syntaxe de mettre en gras un bout de mot ….)
# Boucle sur i
Posté par monsieurw . Évalué à 1.
Bonjour
L'un des problèmes me semble venir de la non-utilisation de la variable "
i
" dans la boucle :la variable "
IP_DEBIAN
" doit contenir plusieurs adresses IP ou nom d'hôtes, ce qui est problématique dans les commandes "ssh $IP_DEBIAN
" (juste après le "do") et "scp $IP_DEBIAN:/...
" (juste avant le "done") : il faudrait remplacer ça par "ssh $i
" et "scp $i:/...
", à mon avis.A+
--
Unk
[^] # Re: Boucle sur i
Posté par hakhak91 . Évalué à 0.
Pour info le nouveau script fonctionne parfaitement
Merci pour ton aide ;-)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.