将MySQL查询重定向到shell脚本中的日志/文本文件,并读取该文件以获取特定字符串

时间:2013-05-15 09:24:15

标签: mysql linux shell


我编写了一个shell脚本MySQL_Test.sh来从linux shell连接到MySQL数据库并执行三个不同的select语句,如下所示:

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

我的shell脚本如下所示。

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.我想将上述三个查询的输出重定向到单个文本或日志文件中 2.如果任何查询返回&gt;发送电子邮件0行。
3.发送电子邮件时附加文本/日志文件。

任何人都可以帮我修理1和2.提前致谢。

1 个答案:

答案 0 :(得分: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