bash嵌套expect实现交换机的交互式登录实例

1. expect实现参数传递

1.1 实现

$argv 参数数组

expect脚本可以接受从bash传递过来的参数。

可以使用[lindex $argv n]获得,n0开始,分别表示第一个,第二个,第三个....参数

1.2 样例

cat telnet.exp

#!/usr/bin/expect

set host [lindex $argv 0]

set passwd [lindex $argv 1]

set passwden [lindex $argv 2]

spawn telnet $host

expect "Password:"

send "$passwd\r"

send "en\r"

send "$passwden\r"

interact


2. bash嵌套expect

2.1 我想这样使用的原因?

我在登录交换机时,需要交互式登录,需要给控制台发送命令并输出执行结果;

如果只用expect的话,脚本内含有IP,密码等敏感信息,除设置脚本权限为700外,我没有实现给expect加密;

所以间接的方法是用bash执行expect脚本,然后用shcbash加密。

2.2 样例

vim telnet.sh

#!/bin/bash

expect telnet.exp 192.168.x.x 123123456

2.3 shc加密

shc -r -f telnet.sh

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章