서버 1의 동일한 스크립트 내에서 이메일에 있는 다른 서버 2의 변수 내용을 가져오고 이메일 내용에 있는 두 서버의 값을 인쇄합니다.

서버 1의 동일한 스크립트 내에서 이메일에 있는 다른 서버 2의 변수 내용을 가져오고 이메일 내용에 있는 두 서버의 값을 인쇄합니다.

쉘 스크립트를 사용하여 3개의 서버 상태를 HTML 테이블 형식으로 보내야 합니다. 출력은 다음과 같습니다.

---------------------------------------
|           Daily Status              |
---------------------------------------
|   Ad Status  |                      |
---------------------------------------
|   Servers    | Ser1  | Ser2 | Ser3  |
---------------------------------------
| Serv. Status |       |      |       |
---------------------------------------
| DB Server    |       |      |       |
---------------------------------------
|            Other Status             |
---------------------------------------
| Usage        |       |      |       |
---------------------------------------
|           Final Stats               |
---------------------------------------
| Total        |       |      |       |
---------------------------------------
| Success      |       |      |       |
---------------------------------------
| Fail         |       |      |       |
---------------------------------------
| Overall      |                      |
---------------------------------------

샘플 스크립트로 이 작업을 수행하려고 했지만 위 표와 다른 결과가 나왔습니다.

#!/bin/sh
 
spawn ssh [email protected]
interact

 ......
 ad_status=$(echo .....)
 if [[ $ad_status == "yes" ]]; then
    ad_status=$(echo "OK")
 elif [[ $ad_status != "yes" ]]; then
    ad_status=$(echo "NOK")
 fi
  .... <same for all variable which mention in below table format>
echo "
<html>
<body>
<table>
    <tr>
            <th>Daily Status</th>
            <tr><td>Ad Status</td><td colspan=3>$ad_status</td></tr>
            <tr><td>Servers</td><td>ser1</td><td>ser2</td><td>ser3</td></tr>
            <tr><td>Serv. Status</td><td>$server_status</td><td></td><td></td></tr>
            <tr><td>DB Server</td><td>$db_status</td><td></td><td></td></tr>
            .............
    </tr>
</table>
</body>
</html>" > abc.html

(uuencode abc.html abc.html) | cat abc.html | mail -s "$(echo -e "Status\nContent-Type: text/html")" [email protected]
exit 0

문제는 다른 서버 스크립트에서 인쇄된 값에 있습니다. 여기171.234.67.89다른 서버 2의 IP 주소입니다. ad_status/path/script/test.sh에 변수를 인쇄해야 합니다.서버 2&서버 3게다가. 기본 스크립트는 Server1에서 실행되므로 다른 서버에 연결하기 위해 비밀번호 없는 인증을 사용했습니다. 다른 서버의 메일 내용 값도 출력됩니다. 이 문제를 해결하는 데 도움을 주실 수 있나요?

답변1

정확히 무엇이 필요한지 잘 모르겠지만 다음과 같을 수 있습니다.

 ad_status=$(echo .....)
 if [[ $ad_status == "yes" ]]; then
    ad_status="OK"
 else
    ad_status="NOK"
 fi

답변2

다른 서버와의 연결이 완료되면 ad_status2두 번째 서버와 마찬가지로 변수를 생성합니다. 그런 다음 호출 스크립트는 HTML 태그 내의 다른 스크립트의 변수/값을 사용합니다.

관련 정보