日期:2014-05-16  浏览次数:20532 次

linux下如何通过shell脚本查询数据库中的数据
先大家要熟悉在linux下如何连接数据库。连接数据库用法如下:

/usr/local/mysql/bin/mysql -hIP -uusername -ppassword -Pportnumber

-h面接数据库服务器的ip地址,-u参数接的是用户名,-p是数据库的密码,-P是数据库连接用的端口号。
2

那怎么查询数据呢?在shell中是不能用mysql的交互接口的,我们可以通过在建立连接的时候直接查询的方式实现。

/usr/local/mysql/bin/mysql -hIP -uusername -ppassword -Pportnumber

-e use lbc_inf;select count(name) from table_name where status=1 and update_time>$time_mill_sec_2_day_ago and update_time<$time_mill_sec_1_day_ago

注意上述命令是在一行中实现的!-e参数后面接的就是切换数据库和查询数据库的语句
3

下面展示一下一个完整的查询数据的脚本。脚本中通过时间来查询两天前和一天前数据表中新增的数据情况。

#!/bin/bash#查询数据库新增poi脚本#First release  2013/11/21 dataConn="/usr/local/mysql/bin/mysql -h10.10.18.234 -uusername -password -P3306" time_mill_sec_2_day_ago=`date --date='2 day ago' +%s`time_mill_sec_1_day_ago=`date --date='1 day ago' +%s`#echo -e "$time_mill_sec" result=`$dataConn -e "use database_name;select count(name) from table_name \ where status=1 and update_time>$time_mill_sec_2_day_ago and update_time<$time_mill_sec_1_day_ago"|awk 'END{print $0}'`; echo -e "`date --date='2 day ago' +%Y年%m月%d日`到`date --date='1 day ago' +%Y年%m月%d日`新增的生效的poi数量为:    $result"time_mill_sec=`date --date='1 day ago' +%s`#echo -e "$time_mill_sec"result=`$dataConn -e "use lbc_inf;select count(name) from table_name where status=1 and update_time>$time_mill_sec_1_day_ago"|awk 'END {print $0}'`;result=`$dataConn -e "use lbc_inf;select count(name) from table_name where status=1 "|awk 'END {print $0}'`;echo -e "查询完成!\n"



关于怎样通过sshpass来动态获取日志文件请看下面的文章。
http://jingyan.baidu.com/article/cd4c2979ca556c756e6e60aa.html
java中怎样使用linux的md5sun生成md5文件
http://jingyan.baidu.com/article/cd4c2979ca556c756e6e60aa.html