我正在编写脚本
该脚本位于服务器 A 上并在服务器 B 上运行
现在我想检查远程 server-B 上的命令是否正常。如果命令成功,那么它应该向发行版发送一封电子邮件。
此电子邮件应来自服务器 A 。现在我陷入了困境,不知道如何从 server-A 发送电子邮件,并在 server-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!"