Tuesday, 20 October 2009

Astazi am facut:

un script in shell care face telnet/sau ssh pe un numar de statii/routere si da un set de comenzi.

Scriptul expect_telnet

#!/usr/bin/expect -f

log_user 0. ### dace se doreste ca scriptul sa mearga fara echo, sa nu afiseze
set timeout 20 ### daca merge ceva gresit scriptul se opreste dupa 20 de secunde
set address [lindex $argv 0] ###seteaza ca argument pentru
scriptul expect_telnet IP Address
set username [lindex $argv 1] ## seteaza argument pentru
expect_telnet username
set password [lindex $argv 2] ## seteaza argument pentru
expect_telnet password
set enable "enable"
spawn telnet ${address}

expect "Username:"
send -- "${username}\r"
expect "Password:"
send -- "${password}\r"
expect "*> "
send -- "$enable\r"
expect "Password: "
send -- "${password}\r"

## aici se trimit folosind send si expect comenzile ce se doresc da pe routere

send -- "exit\r" ###la final se iese de pe router


Pentru ca acest script sa poate fii executat trebuie definit ca executabil
chmod u+x expect_telnet

Scriptul in bash care apeleaza scriptul expect_telnet si care se conecteaza pe un numar de routere cu ip-uri cunoscute( ip-urile sunt salvate in prealabil in ip_host.txt)

Scriptul comennzi_on_host

#!/bin/bash
nr_hosti=`sed -n '$=' ip_host.txt`

increment=1
usr=user
psw=parola

while [ $increment -le $nr_hosti ] ; do

valoare_ip=`head -$increment ip_host.txttail -1`
./expect_telnet "$valoare_ip" "$usr" "$psw"

increment=$(($increment+1))

done


Pentru ca acest script sa poate fii executat trebuie definit ca executabil
chmod u+x comennzi_on_host

No comments:

Post a Comment