【问题标题】:Problem with sending commands to mikrotik through telnet using expect script使用期望脚本通过 telnet 向 mikrotik 发送命令的问题
【发布时间】: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,但没有任何变化。

标签: expect telnet mikrotik


【解决方案1】:

我在https://wiki.mikrotik.com/wiki/Manual:Console_login_process#FAQ 找到了解决方案。 在登录名后添加“+t”后,有问题的输出消失了。

【讨论】:

    猜你喜欢
    • 2014-11-02
    • 2015-02-19
    • 2020-09-01
    • 2019-10-05
    • 2015-10-30
    • 2017-06-11
    • 2019-12-25
    • 2016-09-06
    • 1970-01-01
    相关资源
    最近更新 更多