我编写了一个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.提前致谢。
答案 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