免费注册 查看新帖 |

Chinaunix

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

expect sudo疑问【已搞定】 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-06-28 13:23 |只看该作者 |倒序浏览
本帖最后由 squall1 于 2010-06-28 17:26 编辑

我是普通用户,需要sudo 命令,才可以执行。

例如

sudo clustat

是需要密码的。

因机器众多。我是通过expect调用sudo

spawn /usr/bin/ssh -l squall $IPADDR sudo -S /usr/local/mysql/bin/mysqldumpslow -a -s at -t 10 /usr/local/mysql/data/mysql.slow

如何发送sudo密码。

谢谢。
  1. spawn /usr/bin/ssh -t -l squall $IPADDR sudo sed -i '1\i "123"' /root/test.txt
  2.         expect {
  3.                 \"*yes/no*\" {send \"yes\r\"; exp_continue}
  4.                 \"*password*\" {send \"123456\r\"; exp_continue}
  5.                 \"*Password*\" {send \"123456\r\";}
  6.         }
  7. expect eof;"

  8. #最终代码。已经搞定,谢谢各位。
复制代码

论坛徽章:
0
2 [报告]
发表于 2010-06-28 13:28 |只看该作者
不客气。。
你的疑问是?

论坛徽章:
0
3 [报告]
发表于 2010-06-28 13:29 |只看该作者
是提问还是knowledge sharing?

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-08-24 06:20:00综合交流区版块每日发帖之星
日期:2015-10-14 06:20:00IT运维版块每日发帖之星
日期:2015-10-25 06:20:00IT运维版块每日发帖之星
日期:2015-11-06 06:20:00IT运维版块每日发帖之星
日期:2015-12-10 06:20:00平安夜徽章
日期:2015-12-26 00:06:302016猴年福章徽章
日期:2016-02-18 15:30:34IT运维版块每日发帖之星
日期:2016-04-15 06:20:00IT运维版块每日发帖之星
日期:2016-05-21 06:20:00综合交流区版块每日发帖之星
日期:2016-08-16 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-14 06:20:00
4 [报告]
发表于 2010-06-28 13:32 |只看该作者
同问?

搞的大家都不懂你想讲咩啊

论坛徽章:
3
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:19
5 [报告]
发表于 2010-06-28 13:44 |只看该作者
先用expect 取得输入密码提示
再用send 发送密码

论坛徽章:
0
6 [报告]
发表于 2010-06-28 16:34 |只看该作者
我用普通用户登录进去,然后sudo su - 切换到root用户,然后执行系统命令。

但 不清楚,利用expect如何发送密码。

论坛徽章:
0
7 [报告]
发表于 2010-06-28 16:47 |只看该作者
expect语法不太难,发送密码什么的都是用send
大多都是
spawn cmd
expect{
"keyword1"{send "input1"}
"keyword2"{send "input2"}
}
这种,你可以参考下这个看看http://bbs.chinaunix.net/viewthr ... p;extra=&page=1

论坛徽章:
0
8 [报告]
发表于 2010-06-28 17:00 |只看该作者
expect -c "
set timeout 60;
spawn /usr/bin/ssh -t -l squall 远程IP sudo /usr/local/mysql/bin/mysqldumpslow -a -s at -t 10 /u1/mysql/data/mysql.slow
        expect {
                \"*yes/no*\" {send \"yes\r\"; exp_continue}
                \"*password*\" {send \"123456\r\";}
        }
expect eof;"

我写了一个,仍旧不行。

请帮忙看看。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP