1

以下は、正常に動作している私のシェルスクリプトです。

#!/bin/bash

DATE_YEST_FORMAT2=`perl -e 'use POSIX qw(strftime); print strftime "%Y%m%d",localtime(time()- 3600*96);'`
echo $DATE_YEST_FORMAT2

QUERY1=`hive -e "
set mapred.job.queue.name=hdmi-technology;
SELECT SUM(total_items_purchased), SUM(total_items_missingormismatch) from lip_data_quality where dt='$DATE_YEST_FORMAT2';`

QUERY2=`hive -e "
set mapred.job.queue.name=hdmi-technology;
SELECT 100 * SUM(total_items_missingormismatch*1.0) / SUM(total_items_purchased) FROM lip_data_quality where dt='$DATE_YEST_FORMAT2';"`

echo "Total items purchased: `echo $QUERY1 | awk '{print $1}'`"
echo "Total Items MissingorMismatch: `echo $QUERY1 | awk '{print $2}'`"
echo "Error Percentage: $QUERY2"

私は以下のような上記のシェルスクリプトを実行しています-

sh -x test.sh

問題文:-

上記のシェルスクリプトから、最後の3つのechoステートメントから3つ以下になります-

Total items purchased
Total Items MissingorMismatch
Error Percentage

DL-host@company.com上記の3つすべてを、上記を使用してメールグループにメールで送信する必要があります。shell scriptまたは10 email list、同じ内容と件名のメールを送信する必要がある場合は、これらすべてを保存できると思います。 10通のメールが変数にリストされていて、そこから読んで送信を続けますよね?これは可能ですか?私は以下のようなメールの構造を考えていましたが、非常に単純にしています。

主題

テストデータ

メール本文

Total items purchased:-    Some Number
Total Items MissingorMismatch:-   Some Number
Error Percentage:-   Some Number

どんな考えでもありがたいです。

更新、larsksの提案を試した後、電子メールの最後のエコーステートメントのみを取得しています。これは、1つの電子メールの3つすべてではなく、エラー率1のみを意味します。

#!/bin/bash

DATE_YEST_FORMAT2=`perl -e 'use POSIX qw(strftime); print strftime "%Y%m%d",localtime(time()- 3600*96);'`
echo $DATE_YEST_FORMAT2

QUERY1=`hive -e "
set mapred.job.queue.name=hdmi-technology;
SELECT SUM(total_items_purchased), SUM(total_items_missingormismatch) from lip_data_quality where dt='$DATE_YEST_FORMAT2';`

QUERY2=`hive -e "
set mapred.job.queue.name=hdmi-technology;
SELECT 100 * SUM(total_items_missingormismatch*1.0) / SUM(total_items_purchased) FROM lip_data_quality where dt='$DATE_YEST_FORMAT2';"`

echo "Total items purchased: `echo $QUERY1 | awk '{print $1}'`"
echo "Total Items MissingorMismatch: `echo $QUERY1 | awk '{print $2}'`"
echo "Error Percentage: $QUERY2" | mail -s "Test Data" rj@host.com
4

1 に答える 1