qq_41980020 2020-06-12 14:26 采纳率: 0%
浏览 235

想问一下如何写一个shell脚本,这个脚本里的查询语句能够查询多个主机上的数据库?

之前写过shell脚本连接一个主机上的数据库并进行查询,也成功了,现在要写连接多个主机的数据库并执行查询语句,试了好多次都不行。

解决了。

在shell脚本同目录建一个文件,将需要访问的ip输入进去。

for i in $(cat host);
do
echo $i
mysql_u="数据库用户名"
mysql_p="数据库密码"
save_f="mysql.txt" 
save_p="/usr/"
mysql_sq1="SELECT count(*) as "007未上传数量",xhdwdm from PJ_ZZSP_FPMX WHERE KPRQ >'date_sub(date_sub(now()),interval extract(day from now())-1 day),interval 1 month)' and KPRQ <'date_add(now(),interval 3 hour)' and SCBZ='0' GROUP BY XHDWDM;
SELECT count(*) as "004未上传数量",xhdwdm from PJ_ZZSz_FPMX WHERE KPRQ >'date_sub(date_sub(now()),interval extract(day from now())-1 day),interval 1 month)' and KPRQ <'date_add(now(),interval 3 hour)' and SCBZ='0' GROUP BY XHDWDM;
SELECT count(*) as "电票",xhdwdm from PJ_ZZSPdz_FPMX WHERE KPRQ >'date_sub(date_sub(now()),interval extract(day from now())-1 day),interval 1 month)' and KPRQ <'date_add(now(),interval 3 hour)' and SCBZ='0' GROUP BY XHDWDM"
time=$(date "+%Y-%m-%d %H:%M:%S");

echo ”连接数据库"
# 2.连接数据库
result=`mysql -h$i -u$mysql_u -p$mysql_p << EOF
use skdata; 
$mysql_sq1; 
quit        
EOF`       
# 判断是否连接成功
if [ $? = 0 ] 
then  
 echo "连接成功"
else
 echo "连接失败”
fi
echo "写入查询结果"
# 将结果写入文本
echo "$i 的查询结果是
$result $time"  >> $save_p$save_f
echo "完成"
done
stop

  • 写回答

1条回答 默认 最新

  • dabocaiqq 2020-08-30 09:20
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题