自动Telnet远程登陆命令

有些时候,在面对开发机的时候,不断的telnet和不断的command自己的命令确实非常麻烦,需要一些自动测试或者自动部署的需求。然而面对telnet很多同学都跟我一样一开始觉得无法通过管道等传用户名和密码给telnet进行自动化执行。但其实很是有解决办法的,目前解决办法大致分一共有两种,一种是用第三方的expect这个命令,它可以交互式的根据终端返回的信息可以在你事先设定好的游戏规则之下进行命令,比如expect "Hello", send "Hello, too",表示当终端返回Hello的时候我就返回Hello,too,不然就用其中的set timeout进行超时等待。具体的用法同学可以参考相关细节,总之,expect绝对是服务器管理员的利器,如果你有空,确实可以抽空好好学习一下这个命令。但麻烦的就是它不是系统标配的,需要后期安装。

第二种方法比较简单,有些同学可能会跟我一样,想着兼容性方面,比如我这个脚本有可能会给我团队的队友一起使用,难道要求他们都去装expect吗?有没有简单的办法可以让shell来帮我们进行telnet并自动执行一些简单的命令呢?答案是有的,那就是利用管道,echo,telnet的三者结合,先看以下demo.

#!/bin/bash
#==============================================
# Author: Ricky.k
# Description: Auto telnet and run command
#==============================================
echo "My own command..." &&
(sleep 1; echo "user";  sleep 1; echo "password";  sleep 1; echo "cd /usr/local";  sleep 1; echo "./test.sh";  while [[ true ]]; do      sleep 1;  done;) | telnet 192.168.1.1

可以看到,在输入完自己命令之后,可以通过小括号(用大括号需要注意左边第一个括号和第一个命令有一个空格)将命令包起来,这样整个的管道就是对其中各个命令的全部起作用,利用echo,将用户名,密码,以及你要输入的命令通过管道传给telnet,即实现了自动化的telnet脚本命令实现。同时需要注意,在最后一个命令(非sleep)之前,如果直接传给telnent,你会发现命令根本就没有执行完或者压根就没执行就被你断开链接了,这个时候你需要用while循环或者sleep一个比较大的值来让它有时间进行命令响应,这也是需要考虑的。

telnet自动化并没有我们想的这么复杂,用用简单命令一样可以实现这些功能,也反应了UNIX经典的设计哲学,通过管道和命令组装,你就拥有了世界上最好的武器。

自动Telnet远程登陆命令

时间: 2024-11-11 13:08:16

自动Telnet远程登陆命令的相关文章

实验四 交换机的Telnet远程登陆配置

实验四 交换机的Telnet远程登陆配置 一.实验目标 掌握采用Telnet方式配置交换机的方法. 二.实验背景 第一次在设备机房对交换机进行了初次配置后,你希望以后在办公室或出差时也可以对设备进行远程管理.现要在交换机上做适当配置. 三.技术原理 配置交换机的管理IP地址(计算机的IP地址与交换机管理IP地址在同一个网段): 1.为telnet用户配置用户名和登录口令: 1) 交换机.路由器中有很多密码,设置对这些密码可以有效的提高设备的安全性. 2) switch(config)# enab

第三章 交换机的Telnet远程登陆配置

一.实验名称 交换机的Telnet远程登陆配置 二.实验内容 1.新建 Packet Tracer 拓扑图 配置交换机管理 ip 地址          Switch(config)# int vlan 1          Switch(config-if)# ip address **IP** **submask***2.配置用户登录密码         Switch(config)# enable password ******* 设置进入特权模式的密码         Switch(co

在Packet Tracer中交换机的Telnet远程登陆配置

实验目标: <1>掌握采用Telnet方式配置交换机的方法. 技术原理: <1>配置交换机的管理ip地址,为telnet用户配置用户名和登录口令. <2>交换机.路由器中有很多密码,设置对这些密码可以有效的提高设备的安全性 <3>switch(config)#enable password  xxx    进入特权模式的密码 switch(config-line)#               可以设置console口和vty远程登陆密码 switch(co

python实现Telnet远程登陆到设备并执行命令

#encoding=utf-8 import telnetlib import time def do_telnet(Host, username, password, finish, commands): # 连接Telnet服务器 tn = telnetlib.Telnet(Host, port=23, timeout=10) tn.set_debuglevel(2) # 输入登录用户名 tn.read_until('ENTER USERNAME < ') tn.write(username

使用RSA公钥实现无密码远程登陆另一台机器

在Linux 系统下,可以使用ssh客户端远程登陆到另一台Linux系统的机器,正常情况下每次在输入远程登陆命令后,都会强制要求输入远程机器的用户登陆密码,就很烦,如果将本地用户的公钥传给远程用户就可以不需要输入登录密码即可登陆,具体做法如下: 首先假定有两个用户:本地用户python和远程登陆用户seeker,要实现用户python通过ssh客户端无密码连接seeker,首先需要生成seeker用户的RSA公钥和私钥,具体做法如下: 在python用户打开终端输入命令: python@pyth

Linux 远程登录命令telnet

来源:https://www.cnblogs.com/kingsonfu/p/9779205.html 一.telnet简介: telnet命令通常用来远程登录.telnet程序是基于TELNET协议的远程登录客户端程序.Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式.它为用户提供了在本地计算机上完成远程主机工作的 能力.在终端使用者的电脑上使用telnet程序,用它连接到服务器.终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运

Linux下使用SSH非交互式远程执行命令脚本---ssh无密码登陆

通过SSH命令远程执行命令首先需要建立相关主机间的信任关系.否则,在执行命令前SSH命令会提示你输入远程主机的密码.建立主机间信任关系的方法如下-即ssh无密码输入: 假设我们有两台主机.主机名分别为linuxa和linuxb.首先在linuxa上以当前用户运行如下命令生成本主机的公钥和私钥文件: ssh-keygen -t rsa     上述命令执行后,隐藏目录~/.ssh下会出现两个文件:id_rsa和id_rsa.pub.其中,id_rsa.pub为公钥文件. 将该文件的内容追加到对端主

使用主机telnet远程管理路由器和交换机的详细过程及截图

使用主机telnet远程登录管理路由器和交换机 拓扑结构和规划如下所示:首先把拓扑图的线连好 软件是GNS3 我连接的是本地连接5是我自己添加的网卡 记得添加网卡的配置必须是下面这样的,并配置了IP地址默认网关是你配的路由器和真机连接的那个接口的地址 在连接拓扑的时候如果不确定自己要连的是哪个网卡可以右击PC机配置进行查看 连接之后点击开始运行拓扑 下面开始配置步骤:思路是先做路由器和交换机最后主机 步骤一.在R1上面配置端口IP地址做为网关,然后再配置loopback的IP地址用来模拟外网In

用cisco模拟器远程登陆不同网段交换机

在思科模拟器上这几天为了一个不同网段远程登陆控制交换机的小实验用了三天时间做了一些小的总结希望可以帮助大家.1.首先:准备实验的设备,pc机.交换机2960.路由器2911.然后 连上线,如图:因为思科模拟器效果不是很稳定这里建议可以用自动连接 直通线或交叉线都可以.注意:思科模拟器设备默认情况下端口是关闭的,需要用命令开启 no shutdown2.配置pc机ip地址.网关 192.168.1.1 网关 192.168.1.254 3.配置路由器 interface gi0/0 192.168