成功完成BTEQ作业后如何发送电子邮件?

时间:2019-07-30 15:22:17

标签: bash email teradata

我正在使用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运行中获取结果并将其发送到电子邮件中。任何帮助,不胜感激。

谢谢。

1 个答案:

答案 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