私は台本を書いています。
スクリプトはサーバー 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!"