Welcome 微信登录

首页 / 数据库 / MySQL / 如何向shell scripts中的交互过程推送文本信息

一哥们提了一个问题,觉得比较有意思,小研究了下:
这哥们公司的开发部门写了一个jboss的脚本,用于启动jboss程序,需要输入下面类似的命令:
./jboss_init.sh start
然后会在脚本的提示下输入一个密码确认,然后才能启动。
问题是这样的,他不想手工输入这个密码,希望程序能够自动完成这个输入过程(因为搞技术的的都是很懒的一批人,懒人成就了技术革新)为模拟上述的大致环境,我找到了sqlplus程序,sqlplus程序在指定用户名不指定密码的时候,会提示用户输入密码
如下:
[Oracle@rac1 scripts]$ sqlplus mai
SQL*Plus: Release 11.2.0.1.0 Production on Wed Sep 4 16:50:34 2013
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
Enter password:
于是就写出了下面的这个脚本:
[oracle@rac1 scripts]$ more t.sh
#!/usr/bin/expect
set timeout 10
spawn /u02/db_1/bin/sqlplus mai
expect "password:"
send "mai "
interact
注:大部分系统是没有安装expect工具的,需要进行手工安装一下,安装完成之后的程序就是在/usr/bin/expect下
上面的timeout表示一个时间,给出脚本推送文本的时间
spawn的话,就是执行相关的触发命令,这个命令也可以是一个脚本
expect的话,就是查找相应的字段,准备在其后输入参数值
send很明显,就是发送文本,后面的 表示键入一次回车
interact的话,就是使当前脚本恢复交互模式,如果没有这一行的话,那么脚本就会在延时时间到之后自动退出
执行如下:
[oracle@rac1 scripts]$ ./t.sh
spawn /u02/db_1/bin/sqlplus mai
SQL*Plus: Release 11.2.0.1.0 Production on Wed Sep 4 16:53:05 2013
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
Enter password: mai
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options有上面的结果可见:成功登陆,OK了!特别注意
在大部分的脚本程序中,是不允许吧明文密码直接写入脚本中的,这样容易造成密码的泄露。
在此仅仅是使用了sqlplus这个工具模拟了这个过程,显示中的实用性还是有一些的,但是不建议使用。Linux中shell scripts  http://www.linuxidc.com/Linux/2011-11/47280.htm更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12EasyConnect出现ORA-12154(无法解析指定的连接标示符)错误的解决SQL Server链接Oracle的方法相关资讯      shell  shell scripts  scripts 
  • Linux入门学习:认识shell和bash  (03月25日)
  • SHELL中创建临时文件的方法  (07/22/2014 10:45:00)
  • shell技巧分享  (03/08/2014 07:15:33)
  • 使用shell进行数学运算  (04/14/2015 06:14:58)
  • Shell在大数据时代的魅力:从一道百  (07/21/2014 07:26:42)
  • shell用户个人配置文件  (10/30/2013 20:10:00)
本文评论 查看全部评论 (0)
表情: 姓名: 字数