几种实现自动telnet/ssh/ftp的脚本

原创 2012年03月22日 19:51:47

最近可能需要做一些自动化巡检的脚本,所以需要使用到自动telnet/ssh/ftp之类的东西,google了半天后整理了一下几种实现方式:

1、首先出场的就是比较经常使用的shell脚本方式,如:

(sleep 1;echo "public";sleep 1;echo "public";sleep 1;echo "/home/public/myscripts/checkos.sh";sleep 1;echo "exit") | telnet 192.168.0.220

优点:简单,容易实现,输出是实时的

缺点:需要估算好命令的执行时间,如果命令需要执行10s,而sleep 只有5s的话,那么正在执行的命令就会被中断


2、使用perl脚本实现,如:

#!/usr/bin/perl -w
use strict;
use Net::Telnet;

#登录信息
#注意,$prompt是登陆后的命令提示行,如果匹配不上,脚本将会timeout
my $password = 'public';
my $username = 'public';
my $prompt   = '/\[.+\]\$ $/';
my $host     = '192.168.0.220';
my $cmd1     = '/usr/bin/who';
my $cmd2     = '/bin/ls -l';
my $cmd3     = '/home/public/myscripts/checkos.sh AUTO ';

#连接并登录到服务器
my $conn = new Net::Telnet(
   Timeout=>60,
   Prompt=>$prompt,
);
$conn->open($host);
$conn->login($username,$password);

#分别执行$cmd1、$cmd2和$cmd3命令,并输出结果
my @output = $conn->cmd($cmd1);
print "Output:@output";
@output = $conn->cmd($cmd2);
print "Output:@output";
@output = $conn->cmd($cmd3);
print "Output:@output";

#断开连接
$conn->close;

注释:需要先安装perl-Net-Telnet模块

优点:perl脚本编程的好处就不用我在赘述了,不需要估算命令执行时间,因为它会等的命令执行完后才返回

缺点:交互不是实时的,因为它需要等待命令执行完后才一次性返回,但是这不算什么大的缺点,因为如果作为批量脚本的话是不需要一对一实时输出的。


3、第三种方式就是使用传说中的expect来实现,如:

#!/usr/bin/expect -c

set timeout 2
set TERM xterm
set SERVER [lindex $argv 0]
set USER [lindex $argv 1]
set PASSWD [lindex $argv 2]

if { $argc != 3 } {
        send_user "Usage:server username password \n"
        send_user $SERVER
        exit
}

spawn telnet
expect "telnet> "
send "open $SERVER\n"
expect "ogin:"
send "$USER\n"
expect "assword:"
send "$PASSWD\n"
expect "]$"
send "ls -ltr\n"

interact {
        timeout 10 {send "exit\n"}
}
优点:实现简单,谁用谁知道,个人比较推荐这个方式。

缺点:好像没什么缺点,expect设计的目的就是用来做这个的


4、最后一种实现方式是google出来的,不过我执行不出结果来,但是还是把代码贴出来吧,如:

#!/usr/bin/python -c

import telnetlib

host = '192.168.0.220'
user = 'public'
password = 'public'
commands = ['cd bin','ls -ltr']

tn = telnetlib.Telnet(host)

tn.read_until("ogin:")
tn.write(user + "n")
tn.read_until("assword:")
tn.write(password + "n")

for command in commands:
tn.write(command+"n")

tn.write("exitn")

print tn.read_all()
print 'Finish!'

优点:我只能说python的强悍性

缺点:我跑不出来不知道算不算缺点,哈哈,知道的人麻烦帮忙解释一下。








版权声明:本文为博主原创文章,未经博主允许不得转载。

【XSHELL】Xshell的telnet简化登录

下载地址:https://yunpan.cn/cBFdTL8y9dqCK  访问密码 9229 基本使用就不说了,说说一些技巧 1.telnet一个设备,不像ssh一样可以直接保存用户名和密码...
  • nba199044
  • nba199044
  • 2016年07月06日 18:29
  • 3184

几个网络命令(ping,telnet,ssh,netstat)

1、ping ping命令工作在OSI参考模型的第三层-网络层。 ping命令会发送一个数据包到目的主机,然后等待从目的主机接收回复数据包,当目的主机接收到这个数据包时,为源主机发送回复数据包,这个测...
  • lanonola
  • lanonola
  • 2016年05月11日 14:00
  • 2683

Shell脚本交互之:自动输入密码

文章转载自:http://blog.csdn.net/zhangjikuan/article/details/51105166 平时在控制台输入指令如:sudo、ssh、ftp或者修...
  • wuanwujie
  • wuanwujie
  • 2017年05月04日 10:10
  • 1674

Ant脚本 ftp、telnet、ssh 使用

Java代码   1编写脚本前说明        1.1   需求:远程部署        1.2   详细描述:               1、将编译完成的文件COPY到远程服...
  • gst6062825
  • gst6062825
  • 2012年05月04日 10:55
  • 5239

ssh、telnet、ftp实战

前言:理论固然重要,但是实践更为重要! ssh、telnet、ftp是三种协议。ssh和telnet是远程登录协议,ftp是文件传输协议。这三种协议都是客户端和服务端的思想,就是客户端需要有客户端...
  • txksnail
  • txksnail
  • 2018年01月08日 22:06
  • 13

网络服务器ssh、ftp、telnet、samba配置总结

网络服务器ssh、ftp、telnet、samba配置总结 【SSH】SecureShell 的缩写,是建立在传输层基础上的安全协议,它本身属于应用层,同时可以为应用层提供安全传输服务。 SSH...
  • Lina_Na
  • Lina_Na
  • 2018年01月12日 11:53
  • 24

Ubuntu下配置Telnet、SSH、FTP以及远程桌面 服务

【注意】为了避免出现不必要的问题,请使用root用户执行以下操作。若root用户还没有设置密码,请先设置root用户的密码。 设置密码:sudopasswd root 切换用户:su- root ...
  • oMingZi12345678
  • oMingZi12345678
  • 2013年06月09日 22:30
  • 974

暴力破解ssh、ftp、telnet等工具–Medusa

Medusa是支持AFP, CVS, FTP, HTTP, IMAP, MS-SQL, MySQL, NCP (NetWare), NNTP, PcAnywhere, POP3, PostgreSQL...
  • god_7z1
  • god_7z1
  • 2013年06月24日 00:15
  • 4485

Linux-网络服务器ssh、ftp、telnet、samba配置总结

Telnet配置: sudo apt-get install openbsd-inetd sudo apt-get install telnetd sudo /etc/init.d/openbs...
  • zuXe_7
  • zuXe_7
  • 2018年01月10日 17:32
  • 16

ubuntu开启telnet或ssh远程连接ftp

使用可视化连接 Ubuntu 设置 root 用户telnet 远程登录      很多用虚拟机玩Linux的朋友,肯定都知道虚拟机切换到主机,要按Ctrl + Alt键,...
  • wyabc1986
  • wyabc1986
  • 2011年11月14日 20:18
  • 5490
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:几种实现自动telnet/ssh/ftp的脚本
举报原因:
原因补充:

(最多只允许输入30个字)