2009-09-29 201 views
7

我已經檢查了This Question但找不到我要找的東西。我正在運行Windows(客戶端),並且服務器是舊式大型機類型服務器。Telnet自動化/腳本

基本上我需要編寫一個腳本,python代碼或其他,通過telnet發送一些知道的命令到服務器,並且最好捕獲輸出。然後返回時完成。

什麼是最好的方法?

回答

19

有一個python library for telnet連接從遠程連接讀取和寫入。

檢查鏈接。它有一些你正在尋找的基本例子。

下面是鏈接的例子:

import getpass 
import sys 
import telnetlib 

HOST = "localhost" 
user = raw_input("Enter your remote account: ") 
password = getpass.getpass() 

tn = telnetlib.Telnet(HOST) 

tn.read_until("login: ") 
tn.write(user + "\n") 
if password: 
    tn.read_until("Password: ") 
    tn.write(password + "\n") 

tn.write("ls\n") 
tn.write("exit\n") 

print tn.read_all() 

它連接到Telnet服務器。發送您的登錄憑據,然後執行unix命令ls。然後退出會話並打印來自Telnet服務器的所有輸出。

+4

剛一說明,我的服務器上,我需要添加一個'\ r'而不是'\ N'。花了我一段時間來調試。 – Ayman

0

我從來沒有用過它,但也許pexpect是你需要什麼?

「Pexpect的可用於自動化 交互式應用,如SSH, FTP,passwd中,Telnet等」

+0

PExpect不在Windows客戶端上運行。它給出了一個錯誤,它需要一個類似於UNIX的系統。 – Ayman

+1

我應該更仔細地閱讀這些問題,對不起! :) – Kylotan

3

你也可以考慮Exscript。它簡化了一些簡單的任務,但更復雜的是有更多的抽象層次(Exscript本身就是一種腳本語言)。無論哪種方式 - 值得檢查。