使用expect和SSH将参数传递给bash脚本

时间:2013-08-23 18:06:44

标签: bash ssh grep

我正在尝试编写一些远程控制脚本,以便在拖尾时可以使用一些关键词。

$ ./myscript.sh somekeyword

我希望它可以登录远程机器并运行

$ tail -f /tmp/log/mylog.log | grep "somekeyword"

这是我的代码:

#!/usr/bin/expect
eval spawn ssh -oStrictHostKeyChecking=no -oCheckHostIP=no root@myhost
#use correct prompt
set prompt ":|#|\\\$"
interact -o -nobuffer -re $prompt return
send "mypassowrd\r"
interact -o -nobuffer -re $prompt return
send "tail -f \/tmp\/log\/mylog.log | grep \"$1\"\r"
interact

任何人都可以帮助我吗?

提前致谢!

1 个答案:

答案 0 :(得分:1)

而不是通过模拟交互式会话,我会:

  • 设置基于ssh密钥的身份验证 - 无需输入密码
  • 然后使用:

    ssh root @kroute“logread \ | grep asd”