2013-10-11 2 views
0

ssh를 여러 컴퓨터에 넣고 출력을 변수에 저장하고 보고서로 보내는 명령을 실행하는 셸 스크립트를 작성하려고합니다. 요청 된 출력을 인쇄 할 다음 암호를 물어와 것명령을 실행하고 명령 출력을 전자 메일로 보고서로 보냅니다.

#!/bin/bash 

DcEmitterConn='yinst ssh -H test.out "netstat -a | grep ES | grep 25019 | wc"' 

SUBJECT="DC-Connections" 
EMAIL="[email protected]" 
EMAILMESSAGE="report.out" 
echo $DcEmitterConn> $EMAILMESSAGE 
#send email using /bin/mail 
/bin/mail -s "$SUBJECT" "$EMAIL"< $EMAILMESSAGE 

스크립트에서 위의 명령을 실행 한 후에 : email.Here은 지금 현재의 스크립트에있는 것입니다 통해. 위 스크립트에서 직면하는 문제는 명령 출력을 변수에 저장하고 전자 메일 본문에 인쇄 할 수 없다는 것입니다. 누군가 내가 누락 된 경우 알려주실 수 있습니까?

출력은 다음과 같이 보일 것입니다 :

[email protected]'s password: (yinst-pw) 
    40  240 3560 
[email protected]'s password: (supplied by yinst-pw) 
    50  300 4450 

사전에 감사!

+0

내가 it..it 나를 위해 작동하지 않습니다했습니다. – rond

답변

0

당신은 라인 8 일 $ DcEmitterConn 주위에 따옴표를 넣어해야합니다 그리고 당신은 임시 파일을 방지 할 수 있습니다

SUBJECT="DC-Connections" 
EMAIL="[email protected]" 
yinst ssh -H test.out "netstat -a | grep ES | grep 25019 | wc" | /bin/mail -s "$SUBJECT" "$EMAIL" 
+0

이것은 논리적으로 들리지만 여전히 내용이없는 이메일을 받고 있습니다. 나는 문제가 위의 명령에 대해 초기에 암호를 입력하여 출력을 인쇄 한 곳이라고 생각합니다. 비밀번호 부분을 처리하기 위해 어떤 단계를 포함해야합니까? – rond

+0

[암호없는 SSH 연결] (http://www.debian-administration.org/articles/152) – damienfrancois

+1

출력을 실제로 stderr로 보낼 수 있습니까? |! 그렙 ES | – damienfrancois

관련 문제