【shell】expect分发系统远程yum安装软件失败

回复 收藏
QQ图片20160615112547.png



脚本如图。箭头所指的命令为什么不执行,就直接秒退了????
执行效果图:
QQ图片20160615112556.png






QQ图片20160615112547.png QQ图片20160615112556.png
2016-06-15 11:29 举报
已邀请:
0

阿铭 管理员

赞同来自:

那你换个简单的命令,比如 ls  -l /tmp/  看看有没有输出
0

ggangelo

赞同来自:

阿铭 发表于 2016-6-15 11:36
那你换个简单的命令,比如 ls  -l /tmp/  看看有没有输出

也没有。。是那里出错了{:4_99:}
0

ggangelo

赞同来自:

这样是没有输出的,
2.png

运行图:
3.png

0

阿铭 管理员

赞同来自:

看你的脚本,并没有错。 改成这样试试:
expect "]#"
send "ls /tmp/\r"

下面的先不要,也就是说先不要退出。
0

ggangelo

赞同来自:

阿铭 发表于 2016-6-15 11:52
看你的脚本,并没有错。 改成这样试试:
expect "]#"
send "ls /tmp/\r"

但是这个却又能执行
4.png



执行图:
5.png

0

阿铭 管理员

赞同来自:

加个  set timeout 600  试试看 ,在  
spawn ssh 这行的下面
0

ggangelo

赞同来自:

set timeout 600 加了并没有效果,依然如旧。
0

ggangelo

赞同来自:

本帖最后由 ggangelo 于 2016-6-15 12:22 编辑

找到个办法了,如下图:
aa.png

interact是保持在远程连接。。
但yum在安装后会返回光标,接着执行exit,就返回来了。。。原理暂时不清楚{:4_99:}

执行效果图:
bb.png

0

ggangelo

赞同来自:

还有个问题,就是在用expect与rsync远程传文件时,如果不设置set timeout 600这个参数,在传大于70M的文件可能会不完整,我已经测试过,传一个Mysql 5.1 的128M,每次都是传了一半就会自动断掉。设置 timeout后没这问题。
0

讯风

赞同来自:

围观

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: