【发布时间】:2019-07-05 19:51:24
【问题描述】:
我使用以下 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
【问题讨论】:
-
Expect 脚本以
interact结尾。这意味着它应该从终端运行,以便您可以开始手动输入命令以发送到远程设备。 -
如果你从
systemd运行,它将无法读取任何输入,所以telnet在发送密码后会立即断开连接,不会有任何输出。跨度> -
那么,如何在开机时连接设备?
-
连接它的目的是什么?
-
打印 SMDR 到日志文件