Запустите скрипт на удаленном сервере и сохраните вывод - PullRequest
0 голосов
/ 03 апреля 2019

Я настраиваю два сервера: сервер 1 и сервер 2. Я написал скрипт, который запускается на сервере 1 и сохраняет вывод в файл answer.txt. Теперь я хочу, чтобы этот же скрипт запускался на сервере 2 и сохранял вывод. в тот же файл. Мы используем ключ на основе входа для входа с одного сервера на другой.
Назначение скрипта: - /healthcheck.sh
выходной файл: - /answer.txt

Crontab: -

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

Я могу запустить скрипт на сервере 1, но не могу найти способ сохранить вывод в том же файле.

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

Я хочу получить ответ обоих серверов в одном файле.

Ответы [ 2 ]

1 голос
/ 03 апреля 2019

Давайте назовем сервер с /answer.txt хостом. На хосте вы можете просто перенаправить файл, как у вас с

host$ /healthcheck.sh &>> /answer.txt

С другой стороны, чтобы получить выходные данные какого-либо клиента в тот же файл с уже работающим ключом входа через ssh, вы можете войти от клиента к хосту и использовать ssh для передачи вывода:

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

Здесь «-a» для добавления как >>.

С уважением

0 голосов
/ 04 апреля 2019

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

healthcheck.sh должен быть сохранен в домашнем каталоге хоста.

...