Linux shell/expect交互式脚本编写
交互式脚本主要用于脚本封禁。如soar剧本里面的防火墙联动封禁。该文档脚本基于expect编写,expect安装支持yum和源码编译。expect交互式脚本示例:expect脚本#!/usr/local/bin/expectset timeout 30set host "172.16.1.58"set username "root"set password "123456"spawn ssh $u
交互式脚本主要用于脚本封禁。如soar剧本里面的防火墙联动封禁。
该文档脚本基于expect编写,expect安装支持yum和源码编译。
expect交互式脚本示例:
expect脚本
#!/usr/local/bin/expect
set timeout 30
set host "172.16.1.58"
set username "root"
set password "123456"
spawn ssh $username@$host
expect "*yes*" {send "yes\r"}
expect "*password*" {send "$password\r"}
expect "*]*" {send "df -h\r"}
expect eof
expect交互式脚本说明:
#!/usr/local/bin/expect 脚本声明,expect根据自己安装目录填写
set timeout 30 超时设置,可以不设置(set都是设置部分)
spawn ssh $username@$host expect内部命令,开启ssh连接
expect "*yes*" {send "yes\r"} 匹配到yes,就发送yes,匹配前后最好都加个*
expect eof 脚本结束
expect交互式脚本执行示例:
shell交互式脚本示例(可修改用于soar脚本封禁)
shell.sh
#!/bin/bash
passwd="123456"
/usr/local/bin/expect <<-EOF
set timeout 50
spawn ssh root@172.16.1.58
expect {
"*yes/*" { send "yes\r"; exp_continue }
"*password:" { send "$passwd\r" }
}
expect "*]*"
send "df -h\r"
expect eof
EOF
shell交互式脚本说明:
#!/bin/bash 声明
passwd="123456" 定义字段,可在下文直接使用
/usr/local/bin/expect <<-EOF 嵌入expect脚本内容,注意expect的路径及嵌入结束时,需要添加EOF结尾
set timeout 50 设置超时,一定要设置,否则脚本可能执行不下去。需要根据脚本长短,设置超时时间
shell交互式脚本执行示例:
更多推荐
所有评论(0)