📄 ssh_exec.tcl
字号:
[root@auto4 ~]# cat ssh_exec.tcl
#!/usr/bin/tclsh
package req Expect
if {$argc<4} {
send_user "usage: $argv0 host username password cmd "
exit
}
set timeout 5
proc do_ssh_login {host username pass cmds} {
puts "$cmds"
set timeout_case 0
set done 1
send_user "\n"
spawn ssh $username@$host
send_user "Connectting to $host\n"
while {$done} {
expect {
timeout {
switch -- $timeout_case {
0 { send "\n" }
1 {
send_user "retry...\n"
send "\n"
}
2 {
puts stderr "Connection timeout...\n"
close
set done 0
break
}
}
incr timeout_case
}
"*(yes/no)?" {send "yes\n"}
"?assword:" {send "$pass\n"}
"*Permission denied*" { send_user "login error\n"
close
set done 0
break
}
"*Connection refused*" { send_user "Connection refused\n"
close
set done 0
break
}
"]$*" { send_user "\nlogin successful...\n"
send "$cmds\n"
expect "$"
set done 0
expect {
"$" {set done 0
send_user "\n***************************************************************\n"
send_user "\n"
send "exit\n"
}
}
}
"*#*" {
send_user "\n*************************$host********************************\n"
send "$cmds\n"
expect "#"
set done 0
expect {
"#" {set done 0
send_user "\n***************************************************************\n"
send_user "\n"
send "exit\n"
}
}
}
}
}
}
# read information from a file
#set f [open "pwd.txt" r]
#while { [gets $f line] >= 0 } {
#set su [lindex $line 3]
#set sp [lindex $line 4]
#if { [string length $su] <=0 } {
# set sp "NULL"
# set su "NULL"
#}
#set line [list 10.160.33.149 sliu hs123456 "cli add job file testcase1985"]
set line $argv
do_ssh_login [lindex $line 0] [lindex $line 1] [lindex $line 2] [lindex $line 3]
#}
#close $f
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -