免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2442 | 回复: 3
打印 上一主题 下一主题

bash与expert交互问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-02-22 14:17 |只看该作者 |倒序浏览
公司有上百台服务器,用ssh进行管理,平时在Windows下用Secure CRT倒是很方便,现在必须到Linux平台下,想实现这样一种方式:
写上百个配置文件比如1.conf,2.conf,3.conf
其中的内容是一行一个命令,比如1.conf的内容如下:
10.0.0.1
username
password
NLS_LANG='simplified chinese_china.zhs16gbk'
export NLS_LANG
sqlplus umail/umail

想做一个脚本,比如脚本名称是script.sh ,带个参数就是配置文件的名字:
./script.sh 1.conf
就会自动调用ssh连接上10.0.0.1并用用户名和密码登录,然后执行下面的三条命令,请问如何写程序呢?
expect用bash不大好调用,因为expect中不能调用bash的变量。
请问高手怎么作呢?

论坛徽章:
0
2 [报告]
发表于 2008-02-22 14:50 |只看该作者
自己顶....

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
3 [报告]
发表于 2008-02-22 15:10 |只看该作者

  1. #!/path2expect
  2. foreach file {1.conf 2.conf 3.conf} {
  3. set f [open $file r]
  4. gets $f line
  5. spawn ssh $line
  6. sleep .1
  7. expect "name: "
  8. gets $f line
  9. send "$line\r"
  10. expect "password: "
  11. gets $f line
  12. send "$line\r"
  13. expect " "
  14. while {[gets $f line]>=0} {send "$line\r"}
  15. expect eof
  16. close $f
  17. close
  18. }

复制代码

按实际改改吧

论坛徽章:
0
4 [报告]
发表于 2008-02-22 17:10 |只看该作者
谢谢,试试看先
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP