【发布时间】:2019-08-17 02:18:43
【问题描述】:
我的任务是创建自动脚本,通过 telnet 向 mikrotik 路由器发送命令。我正在尝试创建“预期”脚本。
但是我在命令发送部分卡住了。独立登录效果很好(第一个代码),但是当我添加另一个命令(第二个代码)时,控制台卡在密码(https://imgur.com/WqXjyUP)几秒钟,然后我得到图片中的输出:https://imgur.com/BR6a2q6
登录路由器的第一个代码。这个很好用。
spawn telnet "12.12.13.44";
expect "Login: ";
send "admin\r";
expect "password: ";
send "admin\r";
interact;
这是添加命令后相同的代码,我喜欢发送
spawn telnet "12.12.13.44";
expect "Login: ";
send "admin\r";
expect "password: ";
send "admin\r";
expect "> ";
send "ip firewall filter add chain=forward src-address=34.54.32.33 action=log\r";
exit;
我在不使用期望的情况下使用脚本时得到了相同的输出,我在“期望”之前尝试过
(
echo open "12.12.13.44"
sleep 2
echo "admin"
sleep 2
echo "admin"
sleep 2
echo "ip firewall filter add chain=forward src-address=34.54.32.33 action=log"
sleep 2
echo "exit"
) | telnet
PS。我使用的是 Debian 8 和 RouterOS 6.34.4
PPS。之前提到的设备用于上传最终解决方案,我有另一台路由器和计算机(Ubuntu 18.10 和 RouterOS 6.44.1),在那里我尝试我的脚本和输出,我在图片中显示,在我的路由器和计算机中都出现了。
如果您对我的问题提出任何建议,我将不胜感激。
【问题讨论】:
-
您好,欢迎来到 Stack Overflow!感谢您提供明确的问题并展示您的尝试!
-
RouterOS 6.34 太旧了;升级您的 mikrotik 设备并重试,也许他们修复了一些问题。
-
感谢您的回复。我将 RouterOS 更新到 6.44.1,但没有任何变化。