我使用以下bash脚本通过telnet连接到pbx:
expect.sh:
#!/usr/bin/expect
spawn telnet [ip] 2300
expect -exact "-"
send "SMDR\r";
expect "Enter Password:"
send "PASSWORD\r";
interact
并创建另一个脚本以将结果重定向到文件:
#!/bin/bash
./expect.sh | tee pbx.log
我试图在引导时运行Expect.sh,因此将其添加到systemd中。当我将其作为服务添加到/etc/systemd/system
中时,它会运行,但无法在日志文件中获取结果,就像我手动运行两个脚本一样
关于如何在启动时运行它的任何想法?
TIA
答案 0 :(得分:1)
如果您只想永久输出提供密码后收到的所有内容,只需将interactive
替换为expect eof
,即等待文件结束(当另一个被对方关闭时会发生)结束。您可能还想更改默认超时时间10秒,而没有任何数据会停止命令:
set timeout -1
expect eof