[perl] telnet 자동스크립트 만드는 중인데요..
글쓴이: ssangka1234 / 작성시간: 월, 2013/12/16 - 6:14오전
안녕하세요! 펄공부중인 초보입니다.
너무 답답한 나머지 질문드려 봅니다.
여러대의 IP리스트를 붙여넣기해서 서버(linux)에 telnet 접속하여 hostname,uname등 시스템정보를
hostname1 uname ...
hostname2 uname ...
이런식으로 출력되게끔 작성중인데요 실행하면 아래와 같이 나오네요..마지막에 종료도 안되구요.ㅜ
여기까지 힘들게 책보면서 오긴했는데 모르겟습니다. 이 프롬프트부분 '(공백)[user@web-server1 ~]'을 어떻게 뺄수있을까요??
[user@aaa bin]$ ./test.pl
Input IP List:
10.20.30.40
10.20.30.41
q
web-server1
(공백)[user@web-server1 ~]2.6.18-308.el5
(공백)[user@web-server1 ~]web-server2
(공백)[user@web-server2 ~]2.6.18-308.el5
(공백)[user@web-server2 ~][user@aaa bin]$
#!/usr/bin/perl -w use Net::Telnet; my $ip; my $telnet; my $filename='iplist.txt'; my $cmd1='hostname'; my $cmd2='uname -r'; my $username='user'; my $password='xxxx'; my $t = new Net::Telnet(Timeout=>3, Prompt=>'/\$ $/i', Errmode=>"die") or die "Connect Fail!!"; print "Input IP List:\n"; open my $fh, '>', $filename; while (my $line = <STDIN>){ last if $line =~ '^q$'; print $fh $line; } close $fh; open $fh, '<', $filename; while ($ip = <$fh>){ $t->open($ip); $t->login($username,$password); my @line1 = $t->cmd($cmd1); my @line2 = $t->cmd($cmd2); print "@line1"."@line2"; } close $fh;
Forums:
댓글 달기