关于expect脚本输出的问题
写了一个expect脚本 执行ssh命令远程登录 然后telnet另外一台机器
大致如下:
#!/usr/bin/expect -f
set timeout
set port_type [lindex $argv ]
set p1 [lindex $argv ]
set p2 [lindex $argv ]
set p3 [lindex $argv ]
set p4 [lindex $argv ]
set p5 [lindex $argv ] if { $port_type eq "http" } {
#puts "{\"retcode\":\"0\",\"retinfo\":\"in-http\"}"
#puts "port_type=$port_type p1=$p1 p2=$p2 p3=$p3 p4=$p4 p5=$p5 p6=$p6"
spawn ssh $p2@$p1
expect_after eof { exit } expect "yes/no" { send "yes\r" }
expect "*assword:" { send "$p3\r" } #spawn
#expect "Welcome" { send "telnet $p4 $p5\r" }
expect "*#" { send "telnet $p4 $p5\r" }
expect "Connected to" { puts "{\"retcode\":\"0\",\"retinfo\":\"success\"}"
exit
}
puts "{\"retcode\":\"-2\",\"retinfo\":\"fail\"}" } elseif { $port_type eq "mysql" } {
set p6 [lindex $argv ]
set p7 [lindex $argv ]
#puts "{\"retcode\":\"0\",\"retinfo\":\"in-mysql\"}"
#puts "port_type=$port_type p1=$p1 p2=$p2 p3=$p3 p4=$p4 p5=$p5 p6=$p6 p7=$p7"
spawn ssh $p2@$p1
expect_after eof { exit } expect "yes/no" { send "yes\r" }
expect "*assword:" { send "$p3\r" } expect "Welcome" { send "mysql -h $p4 -P $p5 -u $p6 -p $p7\r" }
expect "#" { send "mysql -h $p4 -P $p5 -u $p6 -p $p7\r" }
expect "$" { send "mysql -h $p4 -P $p5 -u $p6 -p $p7\r" } expect "Welcome to the MySQL" {
puts "{\"retcode\":\"0\",\"retinfo\":\"success\"}"
exit
}
puts "{\"retcode\":\"-2\",\"retinfo\":\"fail\"}"
} elseif { $port_type eq "oracle" } {
set p6 [lindex $argv ]
set p7 [lindex $argv ]
set p8 [lindex $argv ]
#puts "{'retcode':0,'retinfo':'into-oracle'}"
#puts "{\"retcode\":\"0\",\"retinfo\":\"in-mysql\"}"
#puts "port_type=$port_type p1=$p1 p2=$p2 p3=$p3 p4=$p4 p5=$p5 p6=$p6 p7=$p7 p8=$p8"
spawn ssh $p2@$p1
expect_after eof { exit } expect "yes/no" { send "yes\r" }
expect "*assword:" { send "$p3\r" } expect "Welcome" { send "sqlplus $p4/$p5@//$p6:$p7/$p8\r" }
expect "#" { send "sqlplus $p4/$p5@//$p6:$p7/$p8\r" }
expect "$" { send "sqlplus $p4/$p5@//$p6:$p7/$p8\r" } expect "SQL*Plus" {
puts "{\"retcode\":\"0\",\"retinfo\":\"success\"}"
exit
}
puts "{\"retcode\":\"-2\",\"retinfo\":\"fail\"}"
}
#interact
然后PHP中 :
$a = system('expect.sh');
然后用xshell客户端执行
http://www.test.com/test.php"
关于expect脚本输出的问题的更多相关文章
- Linux 下 expect 脚本语言中交互处理常用命令
Linux 下 expect 脚本语言中交互处理常用命令 1. #!/usr/bin/expect 告诉操作系统脚本里的代码使用那一个 shell 来执行.这里的 expect 其实和 Linux 下 ...
- tck/tl 以及expect脚本
最近有用到,利用expcet脚本自动登录到远程服务器并提权执行脚本. 搜集的知识如下: tcl/tk参考——列表操作lindex expect脚本解释 代码如下 #!/usr/bin/expect - ...
- expect脚本自动获取root权限
Linux脚本中有很多场景是进行远程操作的,例如远程登录ssh.远程复制scp.文件传输sftp等.这些命令中都会涉及到安全密码的输入,正常使用命令时是需要人工手动输入密码并接受安全验证的.为了实现自 ...
- expect脚本远程登录、远程执行命令和脚本传参简单用法
expect介绍: 最近想写一个自动化安装脚本,涉及到远程登录.分发文件包.远程执行命令等,其中少不了来回输入登录密码,交互式输入命令等,这样就大大降低了效率,那么有什么方法能解决呢?不妨试试expe ...
- shell脚本嵌套expect脚本
#!/bin/sh echo "helo" password='xxxx' ###不能在下面的expect脚本段设置成 set password xxxx否则获取不到变量,单独的e ...
- 使用expect脚本语言写一键发布服务(代码发布、所有服务重启)
互联网服务有很多台服务,但是在上线的时候需要将这些服务版本都更新与个个都重启,下面的脚本语言,就是一键发布服务~ 1.在/home/weihu/deploy/ 目录下建下publish .publis ...
- linux c程序中获取shell脚本输出的实现方法
linux c程序中获取shell脚本输出的实现方法 1. 前言Unix界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作. ...
- Mac 让 iTerm2 记住用户名密码 expect 脚本
刚刚用iTerm2的时候,总是要一遍遍的敲用户名.密码. 我在想, 能不能像Windows的软件一样,可以直接让软件记住.然后只要点击一下,就直接ssh到远程服务器上面去了. 之后经过搜索,可以用ex ...
- ZABBIX自定义用户KEY与参数USERPARAMETERS监控脚本输出
zabbix在模板中预定义了一些key,但通常情况,并不能满足我们的需求.幸运的是zabbix提供了自定义key的方法,因此我们可以灵活的监控各种我们想要监控的数据. 定义配置文件 通过yum安装的z ...
随机推荐
- 本地Navicat连接虚拟机MySQL
安装完MySQL后,使用mysql命令进去,然后执行以下命令 grant all privileges on hive_metadata.* to 'hive'@'%' identified by ' ...
- notification 使用的基本方法
当某个应用程序希望向用户发出一些提示信息,而应用程序又不在前台,可以借助Notification来实现.发出一条通知后,手机最上方额通知栏会显示一个图标,下来状态栏以后可以看到详细内容. 一.通知的基 ...
- 最短路径:HDU2006-一个人的旅行(多个起点,多个终点)
题目: 一个人的旅行 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- V4L2学习(二)结构介绍
v4l2_device v4l2_device在v4l2框架中充当所有v4l2_subdev的父设备,管理着注册在其下的子设备.以下是v4l2_device结构体原型(去掉了无关的成员): struc ...
- 工具类commons-io的Tailer用来监控文件
一.前言:在Linux下有使用tail命令 在Commons-io中也提供这种方法 二.他采用的是线程方式来监控文件内容的变化 1.Tailer类(采用线程的方式进行文件的内容变法) 2.Tailer ...
- OpenCV学习笔记(五) 文件存取
转自输入输出XML和YAML文件 To be filled
- 线性回归 python小样例
线性回归优点:结果易于理解,计算上不复杂缺点:对非线性的数据拟合不好适用数据类型:数值型和标称型数据horse=0.0015*annualSalary-0.99*hoursListeningToPul ...
- laravel5.2总结--邮件
laravel自带SwiftMailer库,集成了多种邮件API,支持多种邮件驱动方式,包括smtp.Mailgun.Maildrill.Amazon SES.mail和sendmail,Mailgu ...
- Azure继续降价云 价格战就此终结?
[TechTarget中国原创] 刚刚跨入2016年,就听到了云降价这样一个消息,但是我们却不要期望降价之风如去年一样呼呼不绝. 微软公司在本周宣称,他们将在下个月对其D系列虚拟机实施高达17%的降价 ...
- R语言分析朝阳医院数据
R语言分析朝阳医院数据 本次实践通过分析朝阳医院2016年销售数据,得出“月均消费次数”.“月均消费金额”.“客单价”.“消费趋势”等结果,并据此作出可视化图形. 一.读取数据: library(op ...