我正在使用crontab安排BTEQ脚本(如下面的脚本)。我想发送电子邮件通知工作成功完成/失败。有可能吗?
#!/bin/bash
bteqSYSTEM="VTDSSBP"
bteqUSER="#######"
bteqPWD="##########"
bteq <<- BTEQSCRIPT 1> /DATA/home/pverma3/Daily_Jobs/Shell_Scripts/Customer_Details_TD.log
.LOGON ${bteqSYSTEM}/${bteqUSER},${bteqPWD}
.RUN FILE=/DATA/home/pverma3/Daily_Jobs/TD_Codes/Customer_Details.sql;
.LOGOFF
.QUIT
BTEQSCRIPT
我认为我们无法从它所指向的SQL代码中完成操作,因此我认为我需要在脚本中添加一些代码行,这些代码行将从Teradata SQL运行中获取结果并将其发送到电子邮件中。任何帮助,不胜感激。
谢谢。
答案 0 :(得分:1)
我们可以将返回码捕获回shell中(一旦BTEQ退出),然后根据该返回码发送电子邮件。像这样:
#!/bin/bash
bteqSYSTEM="VTDSSBP"
bteqUSER="#######"
bteqPWD="##########"
bteq <<- BTEQSCRIPT 1> /DATA/home/pverma3/Daily_Jobs/Shell_Scripts/Customer_Details_TD.log
.LOGON ${bteqSYSTEM}/${bteqUSER},${bteqPWD}
.RUN FILE=/DATA/home/pverma3/Daily_Jobs/TD_Codes/Customer_Details.sql;
.LOGOFF
.QUIT
BTEQSCRIPT
rcode=$?
if [[ $rcode != 0 ]]; then
mail -s "Fail" myemailid@whereiwork.com
else
mail -s "Pass" myemailid@whereiwork.com
fi