Comment créer un shell de script pour envoyer cmd via telnet et enregistrer uniquement les résultats?

0

J'aimerais créer un script shell pouvant appeler une plage d'adresses IP via telnet, envoyer une commande et écrire le résultat dans un fichier.

Simon
la source
windows a telnet -f, linux a cette façon .. la commande de script ou la commande tee stackoverflow.com/questions/12121241/…
barlop

Réponses:

0

ssh est plus facile que telnet:

for host in host1 host2 host3; do
    ssh user@host remote_command with args 
done > result.file

Pour une connexion sans mot de passe, configurez les clés ssh


Cela aura des bugs, mais quelque chose comme:

#!/usr/bin/env expect
exp_internal 1
set out [open "results.txt" w]
foreach ip $argv {
    spawn telnet $ip
    expect "password: "
    send "$password\r"
    expect "% "          ;# this is the prompt, adjust to suit
    sent "the command\r"
    expect -re "([01,]+).*% "
    puts $out "$ip=$expect_out(1,string)"
    send exit
    expect eof
    exp_close
    wait
}
close $out
Glenn Jackman
la source
Merci, mais mes appareils ne supportent que le telnet. Je dois envoyer cette commande: status. Le résultat peut être: 0,0,0,0,0,0 ou 1,1,1,1,1 ou une combinaison que je veux mettre uniquement le résultat dans un fichier. Est-ce possible? Comme ceci: 192.168.1.1 = 0,0,0,0,0,0 192.168.1.2 = 1,0,0,0,0,0 192.168.1.3 = 0,1,0,0,0,0 192.168. 1,4 = 0,0,1,0,0,0 192.168.1.5 = 0,1,0,0,1,0
Simon