我正在尝试编写一个shell脚本,在退出之前会向我发送一封电子邮件
或
因为我在亚马逊ec2 DEBAIN现场请求上运行此操作,它应该在实例终止之前向我发送电子邮件
#!/bin/bash
sendEmailLog()
{
emailLog=true
if [ $emailLog = "true" ];then
/usr/bin/mpack -s "emailed log" -a "/srv/log.html" "emailid@gmail.com";
fi
exit 0;
}
trap sendEmailLog INT TERM EXIT KILL QUIT
aws ec2 terminate-instances instances ID
我尝试了上面的代码,它在终止之前没有给我发送电子邮件 我正在使用DEBAIN 7
答案 0 :(得分:1)
我想你可能有几个问题。我对mpack并不是很熟悉,但看起来你的语法是正确的(除了&#34 ;;"最后)。在下面进行一些更改,看看它是否有帮助。
我会使用引号来定义你的emailLog字符串,虽然它并不是很清楚你为什么要使用字符串作为布尔语句,据我所知,你想要总是运行。除非您想获得错误代码。
emailLog="true"
要检查是否相等,请使用两个==:
if [ $emailLog == "true" ]; then
正如我所说,&#39 ;;'是多余的。
如果我要重写它,我会这样写:
sendEmailLog() {
/usr/bin/mpack -s "emailed log" -a "/srv/log.html" "emailid@gmail.com" && exit 1
exit 0
}
trap sendEmailLog SIGINT SIGTERM SIGKILL
aws ec2 terminate-instances instances ID