使用期望脚本通过telnet向mikrotik发送命令的问题

时间:2019-03-26 16:06:13

标签: expect telnet mikrotik

我的任务是创建自动脚本,该脚本通过telnet发送命令到mikrotik路由器。我正在尝试创建“期望”脚本。

但是我被卡在命令发送部分。独立登录效果很好(第一个代码),但是当我添加另一个命令(第二个代码)时,控制台会卡在密码(this blog post)处几秒钟,然后我得到图片输出:https://imgur.com/WqXjyUP < / p>

用于登录路由器的第一个代码。这个很棒。

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),在这里我尝试脚本和输出(如图所示)在两个路由器和计算机中都出现了豌豆。< / p>

如果有任何建议,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

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