2009-09-29 50 views
7

Tôi đã kiểm tra This Question nhưng không thể tìm thấy những gì tôi đang tìm kiếm. Tôi đang chạy Windows (máy khách), và máy chủ là một máy chủ kiểu mainframe kế thừa.Tự động hóa/kịch bản Telnet

Về cơ bản, tôi cần phải viết kịch bản, mã python hoặc bất kỳ thứ gì, để gửi một số lệnh biết đến máy chủ qua telnet và nắm bắt đầu ra thích hợp hơn. Sau đó quay trở lại khi hoàn tất.

Cách tiếp cận tốt nhất là gì?

Trả lời

19

Có một kết nối python library for telnet đọc và ghi từ/đến kết nối telnet.

Kiểm tra liên kết. Nó có một số ví dụ cơ bản về những gì bạn đang tìm kiếm.

Dưới đây là một ví dụ từ liên kết:

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

Nó kết nối đến một máy chủ telnet. Gửi thông tin đăng nhập của bạn và sau đó thực hiện lệnh unix ls. Sau đó thoát khỏi phiên và in tất cả đầu ra từ máy chủ telnet.

+4

Chỉ cần một lưu ý rằng trên máy chủ của tôi, tôi cần thêm một '\ r' thay vì' \ n'. Đã cho tôi một thời gian để gỡ lỗi đó. – Ayman

0

Tôi chưa bao giờ sử dụng bản thân mình, nhưng có thể pexpect là những gì bạn cần?

"Pexpect thể được sử dụng để tự động ứng dụng tương tác như ssh, ftp , passwd, telnet vv"

+0

PExpect không chạy trên các máy khách Windows. Nó đưa ra một lỗi rằng nó cần một hệ thống giống như UNIX. – Ayman

+1

Tôi nên đọc kỹ các câu hỏi, xin lỗi! :) – Kylotan

3

Bạn cũng có thể xem xét Exscript. Nó đơn giản hóa một số nhiệm vụ dễ dàng nhưng đối với phức tạp hơn có mức độ trừu tượng bổ sung (Exscript là một ngôn ngữ kịch bản trong chính nó). Dù bằng cách nào - đáng để kiểm tra.

Các vấn đề liên quan