No way I want to make the same mistakes again
To avoid stepping on the same rake again and to fix the issue described in this post, I came out with a simple expect script to save current configuration of Qlogic Sanbox switches.
#!/usr/local/bin/expect -f set switches "switch1 switch2" set user {user} set pass {pass} set ftp_user {ftp_user} set ftp_pass {ftp_pass} set timeout 10 log_user 0 set prompt "(%|#|\\$) $" catch {set prompt $env(EXPECT_PROMPT)} set sec [clock seconds] set date [clock format $sec -format %d%m%Y] set back [clock add $sec -7 days] set bdate [clock format $back -format %d%m%Y] for {set x 0} {$x<[llength $switches]} {incr x} { set current_switch [lindex $switches $x] spawn telnet $current_switch expect { timeout {puts "timeout while connecting to $host"; exit 1} "login:" } send "$user\r" expect { timeout {puts "timed out waiting for the password prompt"; exit 1} "Password:" } send "$pass\r" expect { timeout {puts "timed out after login"; exit 1} "#>" } send "admin start\r" expect { timeout {puts "timed out waiting for admin mode"; exit 1} "(admin) #>" } send "config backup\r" expect { "(admin) #>" } send "admin end\r" expect { "#>" } send "quit\r" spawn ftp sanbox4 expect { timeout {puts "timed out waiting for ftp login request"; exit 1} "Name" } send "$ftp_user\r" expect { timeout {puts "timed out waiting fro ftp password request"; exit 1} "Password:" } send "$ftp_pass\r" expect { timeout {puts "timed out waiting for ftp prompt"; exit 1} "ftp>" } send "get configdata /pth_to_backup_directory/configdata_$current_switch-$date\r" expect "ftp>" send "quit\r" if {[file exists /path_to_backup_directory/configdata_$current_switch-$bdate]} { exec /usr/bin/rm /path_to_backup_directory/configdata_$current_switch-$bdate } }
on August 23, 2015 at 4:38 pm
·