运行 远程服务器上的脚本并保存输出

Run a script on remote server and save output

我正在设置两台服务器:服务器 1 和服务器 2。我在服务器 1 上编写了一个 运行 的脚本,并将输出保存到 answer.txt 文件,现在我想要相同的脚本到服务器 2 上的 运行 并将输出保存到同一文件。我们使用基于密钥的登录从一台服务器登录到另一台服务器。
脚本目的地:- /healthcheck.sh
输出文件:- /answer.txt

定时任务表:-

* * * * * /healthcheck.sh &>> /answer.txt

我可以 运行 服务器 1 上的脚本,但无法找到将输出保存到同一文件的方法。

#!/bin/sh
hostname
free -m | awk 'NR==2{printf "Memory Usage: %s/%sMB (%.2f%%)\n", ,,*100/ }'
df -h | awk '$NF=="/"{printf "Disk Usage: %d/%dGB (%s)\n", ,,}'
top -bn1 | grep load | awk '{printf "CPU Load: %.2f\n", $(NF-2)}'
systemctl status squid|grep Active

我想要两个服务器的答案在同一个文件中。

让我们将具有 /answer.txt 的服务器称为 'host'。在主机上,您可以像使用

一样重定向到文件
host$ /healthcheck.sh &>> /answer.txt

另一方面,要通过 ssh 密钥登录将某些客户端的输出放入同一个文件中,您可以从客户端登录到主机并使用 ssh 传输输出:

client$ /healthcheck.sh 2>&1 | ssh user@host tee -a /answer.txt

此处的“-a”用于附加>>。

亲切的问候

ssh -i Key_location.pem host@server '( ~/healthcheck.sh )' >>/answer.txt

healthcheck.sh 必须保存在主机的主目录中。