我的任务是创建自动脚本,该脚本通过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>
如果有任何建议,我将不胜感激。
答案 0 :(得分:0)
我在https://wiki.mikrotik.com/wiki/Manual:Console_login_process#FAQ找到了解决方案。 在登录名后加上“ + t”后,有问题的输出消失了。