I am trying to ping 4 different IP address after login to a remote switch using expect,login part works fine and the first 2 ping command (send); but it skips the 3rd ping command and go for 4th ping. And most of the time before showing the ping summary it exits the script.
My Script:
#!/usr/bin/expect
spawn telnet 192.168.xx.xx
expect "Username:"
send "username\r"
expect "Password:"
send "password\r"
expect ">"
send "ping -c 20 192.168.1.10\r"
expect ">"
send "ping -c 20 192.168.10.22\r"
expect ">"
send "ping -c 20 192.168.10.33\r"
expect ">"
send "ping -c 20 192.168.11.10\r"
expect ">"
send "quit\r" # command to exit from switch
expect eof
I have tried adding “sleep 4” before every send command but the results are same.
Output:
<switch>ping -c 20 192.168.1.20
PING 192.168.1.20: 56 data bytes, press CTRL_C to break
Reply from 192.168.1.20: bytes=56 Sequence=1 ttl=255 time=1 ms
Reply from 192.168.1.20: bytes=56 Sequence=2 ttl=255 time=1 ms
Reply from 192.168.1.20: bytes=56 Sequence=3 ttl=255 time=101 ms
Reply from 192.168.1.20: bytes=56 Sequence=4 ttl=255 time=2 ms
Reply from 192.168.1.20: bytes=56 Sequence=5 ttl=255 time=2 ms
Reply from 192.168.1.20: bytes=56 Sequence=6 ttl=255 time=2 ms
Reply from 192.168.1.20: bytes=56 Sequence=7 ttl=255 time=102 ms
Reply from 192.168.1.20: bytes=56 Sequence=8 ttl=255 time=2 ms
Reply from 192.168.1.20: bytes=56 Sequence=9 ttl=255 time=3 ms
Reply from 192.168.1.20: bytes=56 Sequence=10 ttl=255 time=1 ms
Reply from 192.168.1.20: bytes=56 Sequence=11 ttl=255 time=108 ms
Reply from 192.168.1.20: bytes=56 Sequence=12 ttl=255 time=1 ms
Reply from 192.168.1.20: bytes=56 Sequence=13 ttl=255 time=1 ms
Reply from 192.168.1.20: bytes=56 Sequence=14 ttl=255 time=2 ms
Reply from 192.168.1.20: bytes=56 Sequence=15 ttl=255 time=130 ms
Reply from 192.168.1.20: bytes=56 Sequence=16 ttl=255 time=1 ms
Reply from 192.168.1.20: bytes=56 Sequence=17 ttl=255 time=2 ms
Reply from 192.168.1.20: bytes=56 Sequence=18 ttl=255 time=1 ms
Reply from 192.168.1.20: bytes=56 Sequence=19 ttl=255 time=160 ms
Reply from 192.168.1.20: bytes=56 Sequence=20 ttl=255 time=1 ms
--- 192.168.1.20 ping statistics ---
20 packet(s) transmitted
20 packet(s) received
0.00% packet loss
round-trip min/avg/max = 1/31/160 ms
<switch>ping -c 20 192.168.10.22
PING 192.168.10.22: 56 data bytes, press CTRL_C to break
Reply from 192.168.10.22: bytes=56 Sequence=1 ttl=255 time=1 ms
Reply from 192.168.10.22: bytes=56 Sequence=2 ttl=255 time=12 ms
Reply from 192.168.10.22: bytes=56 Sequence=3 ttl=255 time=1 ms
Reply from 192.168.10.22: bytes=56 Sequence=4 ttl=255 time=35 ms
Reply from 192.168.10.22: bytes=56 Sequence=5 ttl=255 time=2 ms
Reply from 192.168.10.22: bytes=56 Sequence=6 ttl=255 time=16 ms
Reply from 192.168.10.22: bytes=56 Sequence=7 ttl=255 time=2 ms
Reply from 192.168.10.22: bytes=56 Sequence=8 ttl=255 time=29 ms
Reply from 192.168.10.22: bytes=56 Sequence=9 ttl=255 time=4 ms
Reply from 192.168.10.22: bytes=56 Sequence=10 ttl=255 time=39 ms
Reply from 192.168.10.22: bytes=56 Sequence=11 ttl=255 time=1 ms
Reply from 192.168.10.22: bytes=56 Sequence=12 ttl=255 time=57 ms
Reply from 192.168.10.22: bytes=56 Sequence=13 ttl=255 time=1 ms
Reply from 192.168.10.22: bytes=56 Sequence=14 ttl=255 time=1 ms
Reply from 192.168.10.22: bytes=56 Sequence=15 ttl=255 time=1 ms
Reply from 192.168.10.22: bytes=56 Sequence=16 ttl=255 time=1 ms
Reply from 192.168.10.22: bytes=56 Sequence=17 ttl=255 time=1 ms
Reply from 192.168.10.22: bytes=56 Sequence=18 ttl=255 time=2 ms
Reply from 192.168.10.22: bytes=56 Sequence=19 ttl=255 time=1 ms
Reply from 192.168.10.22: bytes=56 Sequence=20 ttl=255 time=2 ms
--- 192.168.10.22 ping statistics ---
20 packet(s) transmitted
20 packet(s) received
0.00% packet loss
round-trip min/avg/max = 1/10/57 ms
<switch>ping -c 20 192.168.11.10
PING 192.168.11.10: 56 data bytes, press CTRL_C to break
Reply from 192.168.11.10: bytes=56 Sequence=1 ttl=255 time=4 ms
Reply from 192.168.11.10: bytes=56 Sequence=2 ttl=255 time=1 ms
Reply from 192.168.11.10: bytes=56 Sequence=3 ttl=255 time=44 ms
Reply from 192.168.11.10: bytes=56 Sequence=4 ttl=255 time=1 ms
Reply from 192.168.11.10: bytes=56 Sequence=5 ttl=255 time=57 ms
Reply from 192.168.11.10: bytes=56 Sequence=6 ttl=255 time=3 ms
Reply from 192.168.11.10: bytes=56 Sequence=7 ttl=255 time=4 ms
Reply from 192.168.11.10: bytes=56 Sequence=8 ttl=255 time=4 ms
Reply from 192.168.11.10: bytes=56 Sequence=9 ttl=255 time=3 ms
Reply from 192.168.11.10: bytes=56 Sequence=10 ttl=255 time=3 ms
Reply from 192.168.11.10: bytes=56 Sequence=11 ttl=255 time=3 ms
Reply from 192.168.11.10: bytes=56 Sequence=12 ttl=255 time=2 ms
Reply from 192.168.11.10: bytes=56 Sequence=13 ttl=255 time=2 ms
Reply from 192.168.11.10: bytes=56 Sequence=14 ttl=255 time=1 ms
Reply from 192.168.11.10: bytes=56 Sequence=15 ttl=255 time=1 ms
Reply from 192.168.11.10: bytes=56 Sequence=16 ttl=255 time=1 ms
Reply from 192.168.11.10: bytes=56 Sequence=17 ttl=255 time=1 ms
Reply from 192.168.11.10: bytes=56 Sequence=18 ttl=255 time=1 ms
Reply from 192.168.11.10: bytes=56 Sequence=19 ttl=255 time=1 ms
Reply from 192.168.11.10: bytes=56 Sequence=20 ttl=255 time=1 ms
[rousseau@localhost script]$
As you can see, it skips the 3rd ping (checked several times) and exited before the 4th ping summery. Can anyone please help fixing this? Thanks in advance.
You may be running into a timeout issue. Default timeout for Expect is 10 seconds. 20 pings will take more than that approx.
use the following command in the beginning of the script:
set timeout 60to set it to 1 min.