Перейти до змісту

sh скрипти і телнет


nameless

Рекомендовані повідомлення

Є на борді програмісти? Необхідна допомога. Потрібно написати скрипт, який би телнетився на деякий адрес, передавав би деяку команду, і повертав би результат виконання в stdout. Як таке реалізувати?

Зокрема цікавить саме керування потоком stdin телнету з sh-скрипта.

Посилання на коментар
Поділитись на інші сайти

не на шелі, а на пітоні використовуємо таку процедурку для бекапа конфіга:

import os, sys, getopt, time
import pexpect, re

def fetch_nx300_conf(host):
try:
child = pexpect.spawn ('telnet %s' % host)
child.expect ('>')
except Exception, e:
# print str(e)
sys.stderr.write(child.before)
os._exit(1)

child.sendline('user\r\n')
child.expect ('assword: ')
child.sendline('pass\r\n')
child.expect (':')
child.sendline('ms\r\n')
child.expect('Delete following strings including this one')
output = child.before
output = output.replace('\x0d','') # convert line feed from DOS to UNIX
output = output.split('\n')
nsg_re = re.compile('((^D P)|(^F S)|(^C R)|(^A P)|(^W F)|(^S\s))(.*)')
for line in output:
m = nsg_re.search(line)
if m:
print m.group()
child.sendline ('ws tn:0\r\n')

результат роботи вона видає в консоль (в даному випадку конфіг NSG NX-300)

в shell-файлі

fetchnsgconf.py -h nx1.lt.ic > $DESTDIR/lutsk-nx1.conf && echo nx1.lt.ic

Посилання на коментар
Поділитись на інші сайти

Ні ні, потрібно саме на шелі. На перлі чи на С я і сам можу написати, там легко працювати з двосторонніми пайпами, а от шел - бяка =(

Посилання на коментар
Поділитись на інші сайти

  • Адміністратори

expect

Посилання на коментар
Поділитись на інші сайти

expect

Все геніальне - просто, респект =) =) =)

Посилання на коментар
Поділитись на інші сайти

Заархівовано

Ця тема знаходиться в архіві та закрита для подальших відповідей.


Hosting Ukraine
AliExpress WW


×
×
  • Створити...