다음과 같은 파일에 나열된 일부 장치의 일련 번호를 가져와야 합니다.
device_id,ip_address
BIOTERIO, 148.000.00.189
N7K-LAN(JAF1651ANDL), 148.000.0.192
LAB_PESADO, 148.000.000.130
Arquitectura_Salones, 148.000.000.61
CIVIL_253, 148.000.000.253
Arquitectura, 148.000.000.253
ING_CIVIL, 148.000.000.251
ING_CIVIL_DIR, 148.000.0.188
Ingenieria_Posgrado, 148.000.000.253
Biblio_Barragan, 148.000.000.61
Electronica_Edif_3, 148.000.000.253
루프를 수행하는 방법을 모르지만 텔넷을 통해 각 장치에 연결하고 특정 사용자 이름과 비밀번호를 사용한 다음 이 cisco 명령 " show version
"을 실행하고 일련 번호를 동일한 파일에 저장해야 합니다(가능한 경우). .
어떻게 할 수 있는지 아시나요?
답변1
#!/usr/bin/env expect
# open first argument to program...
set fd [open [lindex $argv 0]]
# for each line using that file handle...
while {[gets $fd line] >= 0} {
# split on , and select the last one...
set lastcolumn [lindex [split $line ","] end]
# whoops there's some whitespace so clear that...
set ip [string trim $lastcolumn " "]
puts ">$ip<"
}