7

I have already checked this question but could not find what I'm looking for. I am running Windows (the client), and the server is a legacy mainframe type server.

Basically I need to write a script, python code or whatever, to send some know commands to the server via telnet, and preferable capture the output. Then return when done.

What's the best approach?

halfer
  • 19,824
  • 17
  • 99
  • 186
Ayman
  • 11,265
  • 16
  • 66
  • 92

3 Answers3

21

There's a python library for telnet connections that reads and writes from/to a telnet connection.

Check the link. It has some basic examples of what you are looking for.

Here's an example from the link:

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()

It connects to a telnet server. Sends your login credentials and then executes the unix command ls. Then exits the session and prints all output from the telnet server.

rogeriopvl
  • 51,659
  • 8
  • 55
  • 58
  • 4
    Just a note that on my server, I needed to add a `\r` instead of the `\n`. Took me a while to debug that. – Ayman Sep 29 '09 at 11:14
3

You may want to consider Exscript as well. It simplifies some of the easy tasks but for more complicated there is additional level of abstraction (Exscript is a scripting language in itself). Either way - worth checking out.

1

I've never used it myself, but maybe pexpect is what you need?

"Pexpect can be used for automating interactive applications such as ssh, ftp, passwd, telnet, etc."

Kylotan
  • 18,290
  • 7
  • 46
  • 74