在服务器 1 中的同一脚本内获取邮件中另一个服务器 2 的变量内容并在邮件内容中打印两个服务器的值

在服务器 1 中的同一脚本内获取邮件中另一个服务器 2 的变量内容并在邮件内容中打印两个服务器的值

我必须使用 shell 脚本以 HTML 表格式发送 3 个服务器的状态。下面是输出:

---------------------------------------
|           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 标记内其他脚本的变量/值。

相关内容