免费注册 查看新帖 |

Chinaunix

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

[puppet] spawn ssh远程执行命令的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-04-28 03:38 |只看该作者 |倒序浏览
环境:unix
目的:取远程主机目录下的MD5值
前提:在命令行下执行 ssh -l username $ip "find /data/billapp/lishugao -type f -print -exec md5sum -M {} \;| sed '1~2{N;s/\n/ /;}'"  可以正常执行,返回的结果也正常。
但是写到shell里后:
set host_ip 172.20.XX.XX
set username XXXX
set passwd xxxxx
set timeout -1
spawn ssh -l $username $host_ip find /data/billapp/lishugao -type f -print -exec md5sum -M {} \;
expect "assword: "
sleep 0.1
send "$passwd\r"
sleep 0.1
set host_ip 172.20.35.18
set username billapp
set passwd bp!915uvb!
set timeout -1
spawn ssh -l $username $host_ip find /data/billapp/lishugao -type f -print -exec md5sum -M {} \;
expect "assword: "
sleep 0.1
send "$passwd\r"
sleep 0.1
#send "find /data/billapp/lishugao -type f -print -exec md5sum -M {} \\; | sed '1~2{N;s/\\n/ /;}' >/data/billapp/lishugao/md5.md5\r"
send "exit\r"
interact
send "exit\r"
interact
这样的话就不能执行下去,提示-exec不能正常传递给md5sum,求教各位大侠该如何解决这个问题。
另外如注释掉的语句,如果用send来实现的话,如何不写到远程服务器而把MD5值直接保存到本地目录下?
万望指教,拜谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP