在shell脚本中操作mysql
查询数据
#!/bin/bash M_sql="mysql -ureadonly -h12.1.3.20 -pR5dt --default-character-set=utf8 -A -N" #这里面有两个参数,-A、-N, #-A的含义是不去预读全部数据表信息,这样可以解决在数据表很多的时候卡死的问题 #-N,很简单,Don't write column names in results,获取的数据信息省去列名称
sql="SELECT COUNT(1) FROM pj_p2p_core.t_invest_repayment WHERE reinvest_need_amt >0;" #注意sql语句中不能有单引号,否则会报错
result="$($M_sql -e "$sql")" echo $result echo -e "$result" > outfile #这里要额外注意,echo -e "$result" 的时候一定要加上双引号,不让导出的数据会挤在一行
此例子在工作中运用
#!/bin/bash MYSQL="mysql -umicro_readonly -h172.16.3.120 -pR5dt0HwLvc3g --default-character-set=utf8 -A -N" sql="SELECT count(id) FROM t_product WHERE if_old = 0 AND product_status != 240 AND id IN (SELECT product_id FROM t_invest WHERE plan_invest_id IN (SELECT id FROM t_plan_invest WHERE reinvest_amt > 0) AND DATE(invest_time) = DATE(NOW()))" result="$($MYSQL pj_p2p_core -e "$sql")" #指定连的数据库 if [ $result -gt 0 ];then msg="复投待满标金额" /usr/bin/curl http://172.16.3.50/zabbix_web/weixin/weixin.php?msg="$msg" fi

浙公网安备 33010602011771号