在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
复制代码 代码如下: #!/usr/bin/expect -f set timeout 30 set host "192.168.1.198" spawn ssh $host expect_before "no)?" { send "yes\r" } sleep 1 expect "password:" send "123456\r" expect "*#" send "echo my name is fivetrees > /root/fivetrees.txt\r" interact ##---------------------------- 复制代码 代码如下: [root@fivetrees ~]# cat expect #!/usr/bin/expect for {set i 10} {$i <= 12} {incr i} { set timeout 30 set ssh_user [lindex $argv 0] spawn ssh -i .ssh/$ssh_user abc$i.com expect_before "no)?" { send "yes\r" } sleep 1 expect "password*" send "hello\r" expect "*#" send "echo hello expect! > /tmp/expect.txt\r" expect "*#" send "echo\r" } exit ##------------------------- 复制代码 代码如下: #!/usr/bin/expect if {$argc!=2} { send_user "usage: ./expect ssh_user password\n" exit } foreach i {11 12} { set timeout 30 set ssh_user [lindex $argv 0] set password [lindex $argv 1] spawn ssh -i .ssh/$ssh_user [email protected] expect_before "no)?" { send "yes\r" } sleep 1 expect "Enter passphrase for key*" send "password\r" expect "*#" send "echo hello expect! > /tmp/expect.txt\r" expect "*#" send "echo\r" } exit ##--------------------------- 复制代码 代码如下: #!/usr/bin/expect set timeout 20 if {$argc < 1} { puts "Usage: script IP" exit 1 } # 替换你自己的用户名 set user "username" #替换你自己的登录密码 set password "yourpassword" foreach IP $argv { spawn ssh $user@$IP expect \ "(yes/no)?" { send "yes\r" expect "password:?" { send "$password\r" } } "password:?" { send "$password\r" } expect "\$?" # 替换你要执行的命令 send "last\r" expect "\$?" sleep 10 send "exit\r" expect eof } 使用方法 script_name ip1 ip2 ip3 ... ##--------------------- 复制代码 代码如下: #!/bin/sh # -*- tcl -*- \ exec tclsh $0 "$@" package require Expect set username [lindex $argv 0] set password [lindex $argv 1] set argv [lrange $argv 2 end] set prompt "(%|#|\\$) $" foreach ip $argv { spawn ssh -t $username@$ip sh lappend ids $spawn_id } expect_before -i ids eof { set index [lsearch $ids $expect_out(spawn_id)] set ids [lreplace $ids $index $index] if [llength $ids] exp_continue } expect -i ids "(yes/no)\\?" { send -i $expect_out(spawn_id) yes\r exp_continue } -i ids "Enter passphrase for key" { send -i $expect_out(spawn_id) \r exp_continue } -i ids "assword:" { send -i $expect_out(spawn_id) $password\r exp_continue } -i ids -re $prompt { set spawn_id $expect_out(spawn_id) send "echo hello; exit\r" exp_continue } timeout { exit 1 } |
请发表评论