The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
expect скрипт, !*! djeck, 29-Апр-13, 14:07  [смотреть все]
задача, по логам автоматизировать добавление правил блокировки доступа.

придумал такую штуку:

~/ttt.sh

#/bin/sh
ip=$( cat 1.txt )
./t $ip

~/t
#!/usr/bin/expect -f
set a "*"
set b "*"
set c "*"
set tt [lindex $argv 0]
spawn ssh -T $c@192.168.1.1;
expect "password:"
send "$a\r"
expect ">"
send "en\r"
expect "password:"
send "$b\r"
expect "#"
send "conf t\r"
expect "#"
send "$tt"
expect "#"
send "exit\r"
send "exit\r"
expect eof


~/1.txt
access-list inside_access_in extended permit ip host 192.168.1.4 any i\r

первый скрипт присваивает содержимое файла переменной, которая передается скрипту.
в этом скрипте так сказать ключевая строчка:

send "$tt"

однако, в консоле я вижу, что скармливается не все содержимое файле а лишь "access-list" то есть до первого пробела.

переменную $tt проверял, содержит всю строку целиком.

тогда в чем может быть проблема? почему строка урезается?

  • expect скрипт, !*! Andrey Mitrofanov, 14:12 , 29-Апр-13 (1)
    • expect скрипт, !*! djeck, 14:33 , 29-Апр-13 (2)
      помогло спасибо!

      но возникла еще одна проблемка неожиданно.

      "\r" не отрабатывает.
      в конце строки стоит "\r" в файле, и он не исполняется send-ом.
      получается его наружу за переменную надо выносить.

      а это не есть хорошо, так как файл 1.txt надо будет скармливать построчно.

      получится что для ввода одного блокирующего правила, надо подключиться ввести правило, отключится. и так для каждого правила. а если их будет сотня? как то кривовато.

      удобней было бы один раз подключиться, скормить сотню правил, отключиться. как я собственно изначально и планировал.

      может что то порекомендуете?





Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру