2014-02-12 4 views
0

텔넷을 통해 연결하고 for 루프를 사용하여 여러 명령을 실행하는 bash 스크립트를 만들려고합니다.Bash 스크립트 텔넷 연결 + for 루프

{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

(일반 텍스트 자격 증명을 보내고 스크립트에 저장 최고의 아이디어가 아니다). 이렇게하면 암호가 명령 줄에 있지 않아도 원격 호스트에 안전하게 연결할 수 있습니다. – 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 
필요하지 않기 때문에 : 여기

내가 무엇을 시도했다입니다,210

그러나 코멘트가 SSH를 살펴에 명시된대로 당신은 ssh를 조사 할 수 있습니다

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

좋아, SSH로 시도했으나 작동하지 않았다. #!/bin/bash ssh [email protected] << 'cat hosts'}의 호스트에 대해'ENDSSH '; do "show configuration | display set | match $ hosts "; done ENDSSH – user2642601

+0

@ user2642601 왜 대괄호입니까? 어떤 셸을 사용하고 있습니까? – Matteo

+0

나는 bash를 사용 중입니다 – user2642601