0


我编写了一个 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. 如果任何查询返回 > 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 回答