0


MySQL_Test.shLinux シェルから MySQL データベースに接続し、次のような 3 つの異なる選択ステートメントを実行するシェル スクリプトを 作成し

Select count(*) as My_Column_Name from <table_name> where <condition>

ました。私のシェル スクリプトは次のようになります。

mysql -u$MASTER_DB_USER -p$MASTER_DB_PASSWD -P$MASTER_DB_PORT -h$MASTER_DB_HOST <<EOF
$BS_Query 
$Exp_Query
$ROI_Query
EOF

私の要件は次のとおり
です。 1. 上記の 3 つのクエリの出力を 1 つのテキスト ファイルまたはログ ファイルにリダイレクトしたいと考えています。
2. クエリのいずれかが > 0 行を返す場合は、電子メールを送信します。
3. メールの送信時にテキスト/ログ ファイルを添付します。

誰でも1と2の修正を手伝ってくれませんか。よろしくお願いします。

4

1 に答える 1

1
mysql -u$DB_USER -p$PASSWD -P$DB_PORT -h$DB_HOST <<EOF > output.txt
$BS_Query 
$Exp_Query
$ROI_Query
EOF

# For each even line (i.e. containing the count(*) result), test if count(*) != 0
line_number=1
for line in `cat output.txt`; do
  if [ $((line_number % 2)) -eq 0 ]; then
    if [ $line -ne 0 ]; then
      `( echo "Here is your report"; uuencode output.txt output.txt ) | mail -s "SQL report" admin@sqldb`
      exit
    fi
  fi
  line_number=$((line_number + 1))
done
于 2013-05-15T10:19:32.467 に答える