リモートサーバーでスクリプトを実行してローカルサーバーからEメールを送信する

リモートサーバーでスクリプトを実行してローカルサーバーからEメールを送信する

私は台本を書いています。

スクリプトはサーバー A にあり、サーバー B で実行されます。

さて、リモートサーバーBのコマンドが正しく機能していることを確認したいと思います。コマンドが成功したら、ディストリビューションに電子メールを送信する必要があります。

この電子メールはサーバーAから来る必要があります。今、私はブロックされ、サーバーAから電子メールを送信し、サーバーBでコマンド出力を実行する方法がわかりません。

これは私のスクリプトです。

#!/bin/bash
ps -ef|grep -i service
output1=$(echo $?)
if [ "$output1" -ne 0 ]
then
docker start service
fi
docker ps|grep service
output2=$(echo $?)
fi
if [ "$output2" -ne 0 ]
then
mail -s "Unable to start protegrity on $(hostname)" [email protected] <<< "message"
fi

答え1

実行する主な作業は、リモートサーバーで実行されたコマンドの出力を取得するようです。以下は、SSHを使用してこれを行う方法の簡単な例です。

まず、リモートサーバーで実行されるスクリプトを作成します。

#!/bin/bash

# remote_script.sh

echo "This ran on the remote server!"

次に、ローカルサーバー上で実行され、リモートサーバー上でスクリプトを呼び出すスクリプトを作成します。

#!/bin/bash

# local_script.sh

output="$(ssh user@remote_server "bash remote_script.sh")"
echo ${output}

最後に、ローカルスクリプトを実行します。

user@local_server:~$ bash local_script.sh
"This ran on the remote server!"

関連情報