Bonne journée. J'essaie de créer/exécuter un script qui me permettra d'envoyer un IOS mis à jour d'un serveur à mes périphériques réseau. Le code suivant fonctionne lorsque je mets une adresse IP manuelle juste avant la commande ": flash".Mise à jour des IOS via SCP dans bash avec attendre
#!/user/bin/expect
set IOSroot "/xxxxx/xxx/c3750e-universalk9-mz.150-2.SE10a.bin"
set pw xxxxxxxxxxxxxxxxxxx
spawn scp $IOSroot 1.1.1.1:flash:/c3750e-universalk9-mz.150-2.SE10a.bin
expect "TACACS Password:"
send "$pw\r"
interact
Le code fonctionne très bien et comme prévu. Le problème se pose lorsque j'essaie d'utiliser un fichier appelé "ioshost" avec une liste d'adresses IP et l'utiliser dans ce script pour obtenir une certaine automatisation. J'ai essayé plusieurs choses pour que cela fonctionne. Certains d'entre eux sont les suivants:
Paramètres Variables
IPHosts=$(cat ioshost)
set IPHost 'cat ioshost'
En plus d'essayer d'utiliser la lecture/faire commande ...
while read line; do
spawn scp $IOSroot $line:flash:/c3750e-universalk9-mz.150-2.SE10a.bin
done < ioshost
Aucun de ceux-ci semblent travailler et je cherche à titre indicatif. S'il vous plaît noter que je comprends que la définition d'un mot de passe n'est pas la meilleure pratique, mais la configuration des clés RSA comme mentionné dans d'autres articles n'est pas autorisée, donc je suis obligé de le faire de cette façon.
Nous vous remercions de votre temps.
Avez-vous essayé "écho" de votre commande scp dans la boucle, saillir pour voir si ce que vous obtenez est ce que vous attendez? Je citerais l'extension "$ IOSroot", ainsi que la "ligne $". J'utiliserais aussi "while IFS = read -r line". Mais ceux-ci peuvent ne pas être le problème, en fonction des données réelles contenues. – Fred
En outre, je ne suis pas familier avec la syntaxe que vous utilisez pour scp (IP: flash:/...). Je suis habitué à voir user @ host:/path. Pourriez-vous s'il vous plaît m'aider à le comprendre? – Fred
Fred, la partie SCP que j'exécute est la syntaxe qui identifie où l'IOS est chargé sur notre serveur JUMP et ensuite la deuxième partie est le périphérique cible et le chemin vers lequel je veux l'envoyer. – kuroikenshi