![서버 1의 동일한 스크립트 내에서 이메일에 있는 다른 서버 2의 변수 내용을 가져오고 이메일 내용에 있는 두 서버의 값을 인쇄합니다.](https://linux55.com/image/189572/%EC%84%9C%EB%B2%84%201%EC%9D%98%20%EB%8F%99%EC%9D%BC%ED%95%9C%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%20%EB%82%B4%EC%97%90%EC%84%9C%20%EC%9D%B4%EB%A9%94%EC%9D%BC%EC%97%90%20%EC%9E%88%EB%8A%94%20%EB%8B%A4%EB%A5%B8%20%EC%84%9C%EB%B2%84%202%EC%9D%98%20%EB%B3%80%EC%88%98%20%EB%82%B4%EC%9A%A9%EC%9D%84%20%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B3%A0%20%EC%9D%B4%EB%A9%94%EC%9D%BC%20%EB%82%B4%EC%9A%A9%EC%97%90%20%EC%9E%88%EB%8A%94%20%EB%91%90%20%EC%84%9C%EB%B2%84%EC%9D%98%20%EA%B0%92%EC%9D%84%20%EC%9D%B8%EC%87%84%ED%95%A9%EB%8B%88%EB%8B%A4..png)
쉘 스크립트를 사용하여 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 태그 내의 다른 스크립트의 변수/값을 사용합니다.