2014-02-12 4 views
0

Я пытаюсь создать скрипт bash, который соединяется через telnet и выполняет несколько команд, используя для цикла.Bash script telnet connection + for loop

Вот что я пробовал:

{echo "username"; sleep 1; echo "password"; for host in {`cat hosts`}; do echo "show configuration | display set | match $host";done; sleep 15; } | telnet <ip> 
+0

Вы можете посмотреть в SSH. Это позволит вам безопасно подключаться к удаленному хосту без вашего пароля, находящегося в командной строке. – hbn

+4

Каков ваш реальный вопрос здесь? – arkascha

+0

Мой вопрос - это то, что я делаю неправильно, потому что он не выполняется, команды правильно, например, первый хост, который пытается заблудиться, выглядит как это {12.168.3.3}, и он должен быть 12.168.3.3 с скобками. – user2642601

ответ

0

дополнительные скобки из

for host in {`cat hosts`} ; do 

вам не нужно их

for host in `cat hosts` ; do 

или

for host in $(hosts) ; do 

Но как указано в комментарии принять смотреть на SSH (отправка учетных данных в незашифрованном виде и хранить их в сценарии не лучшая идея)

for host in $(cat hosts) ; do 
    ssh [email protected]$host "show configuration | display set | match $host" 
done 
+0

Хорошо, я пробовал с ssh, но stil didnt работал: #!/Bin/bash ssh [email protected] << 'ENDSSH' для хостов в {'cat hosts'}, показать« показать конфигурацию | отображение » set | match $ hosts "; сделано ENDSSH – user2642601

+0

@ user2642601 Почему скобки? Какую оболочку вы используете? – Matteo

+0

Я использую bash – user2642601