shell mysql 处理数据小结,shell中子进行变量的传递看了好久..

学习一下另一种思维方式

[root@ccsafe cc]# cat productinfo.sh

#!/bin/bash

#stat data for check product system#cc@ccsafe.com

#2008-10-15

readonly -a g_DBConf=("-hlocalhost" "-uuser" "-ppwd")

readonly -a g_DBConf_remote=("-hccsafe" "-uuser2" "-ppwd2")

readonly g_resultFile="/usr/local/product_info_svr/dbshell/check_url/stat_result.txt"

readonly g_LogFile="/home/saferoot/cc/productinfo.log"

readonly g_tmp="/tmp/tmpurl"

g_checkday=0

g_checkedday=0

g_productday=0

g_productdomain=0

g_producturls=0

g_urldomain=""

function stat_day_domain_num()

{

cat $g_tmp |awk -F '/' '{print $3}'|sort |uniq -c |sort -nr |head -20|while read LINE

#while read -r LINE

do

g_producturls=$(echo $LINE |awk '{print $1}')

g_urldomain=$(echo $LINE |awk '{print $2}')

echo "$g_producturls $g_urldomain"

local sql="INSERT INTO xlstat.webdomainstat(urldomain,producturls) VALUES('$g_urldomain','$g_producturls');"

#echo $sql

g_sql=`printf "%s%s" "$g_sql" "$sql"`

#sub process!!

echo "$g_sql">/tmp/tmpsql

#echo "$sql" |mysql ${g_DBConf_remote[@]}

done

read g_g_sql

# echo $g_g_sql

echo "$g_g_sql" |mysql ${g_DBConf_remote[@]}

}

function export_day_product_url()

{

(( $# != 1 )) && {

echo "function stat_day_import_num() parameter[$@] error"

return 1;

}

#local -r date=$(date -d"-$n day" +"%Y%m%d")

local -r date=$(date -d"-1 day" +"%Y%m%d")

if [ -f "$g_tmp" ];then

rm -rf $g_tmp

fi

#local -r sql="select page_url from url_src.gougou_problem_$date into outfile '$g_tmp'"

local sql="select page_url from url_src.gougou_problem_$date into outfile '/tmp/tmpurl'"

echo "$sql"

echo "$sql" |mysql ${g_DBConf[@]}

}

function stat_day_product_num()

{

g_productdomain=$(cat $g_tmp |awk -F '/' '{print $3}'|sort |uniq -c |wc -l)

g_checkday=$(tail -1 $g_resultFile |awk '{print $3}')

g_checkedday=$(tail -1 $g_resultFile |awk '{print $4}')

g_productday=$(tail -1 $g_resultFile |awk '{print $5}')

echo "$g_checkday $g_checkedday $g_productday $g_productdomain"

local sql="INSERT INTO xlstat.webproductstat(checkday,checkedday,productday,productdomain) VALUES('$g_checkday','$g_checkedday','$g_productday','$g_productdomain')"

echo "$sql" |mysql ${g_DBConf_remote[@]}

}

function main()

{

local start_t=`date +"%s"`

local end_t=0

echo ""

echo "------------------`date +"[%Y%m%d %T]"`"

echo "`date +"[%Y%m%d %T]"` shell $0 start at.."

local -r n=${1:-1}

export_day_product_url $n

stat_day_product_num

stat_day_domain_num

echo "$(date +"[%Y%m%d %H:%M:%S]") over" >> ${g_LogFile}

wait

end_t=`date +"%s"`

echo "`date +"[%Y%m%d %T]"` shell end. use-time:$(( end_t-start_t ))sec. "

}

main $@

[root@ccsafe cc]#

shell mysql awk_shell mysql 处理数据小结相关推荐

  1. Spark-SQL从MySQL中加载数据以及将数据写入到mysql中(Spark Shell方式,Spark SQL程序)

    1. JDBC Spark SQL可以通过JDBC从关系型数据库中读取数据的方式创建DataFrame,通过对DataFrame一系列的计算后,还可以将数据再写回关系型数据库中. 1.1. 从MySQ ...

  2. mysql 表损坏_MYSQL数据表损坏的原因分析和修复方法小结(推荐)

    1.表损坏的原因分析以下原因是导致mysql 表毁坏的常见原因: 1. 服务器突然断电导致数据文件损坏. 2. 强制关机,没有先关闭mysql 服务. 3. mysqld 进程在写表时被杀掉. 4. ...

  3. spark mysql 写_Spark-SQL从MySQL中加载数据以及将数据写入到mysql中(Spark Shell方式,Spark SQL程序)...

    1. JDBC Spark SQL可以通过JDBC从关系型数据库中读取数据的方式创建DataFrame,通过对DataFrame一系列的计算后,还可以将数据再写回关系型数据库中. 1.1. 从MySQ ...

  4. shell脚本获取mysql插入数据自增长id的值

    shell脚本获取mysql插入数据自增长id的值 在shell脚本中我们可以通过last_insert_id()获取id值,但是,需要注意的是,该函数必须在执行插入操作的sql语句之后,立即调用,否 ...

  5. shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)

    shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)Shell脚本与MySQL数据库交互(增删改查)# 环境准备:安装mariadb 数据库 [root ...

  6. Shell脚本调用mysql语句

    方法一: mysql -hhostname -Pport -uusername -ppassword -e 相关mysql的sql语句. 不用在mysql的提示符下运行mysql,即可以在shell中 ...

  7. mysql同步binlog_利用MySQL的Binlog实现数据同步与订阅(下)

    利用MySQL的Binlog实现数据同步与订阅(下)​blog.yuanpei.me 终于到这个系列的最后一篇,在前两篇博客中,我们分别了介绍了Binlog的概念和事件总线(EventBus)的实现, ...

  8. mysql命令导入导出数据_mysql命令行导入和导出数据

    MySQL中导出CSV格式数据的SQL语句样本如下: select * from test_info into outfile '/tmp/test.csv' fields terminated by ...

  9. 23 | MySQL是怎么保证数据不丢的?

    今天这篇文章,我会继续和你介绍在业务高峰期临时提升性能的方法.从文章标题"MySQL是怎么保证数据不丢的?",你就可以看出来,今天我和你介绍的方法,跟数据的可靠性有关. 在专栏前面 ...

最新文章

  1. 记一次MongoDB性能问题(从MySQL迁移到MongoDB)
  2. 真相了!敲代码时,程序员戴耳机究竟在听什么?
  3. Redis实践操作之—— keyspace notification(键空间通知)
  4. HTML5新增视频标签(HTML5)
  5. 2017.3.16 下午
  6. xml简单理解,xml增删改操作,仅作笔记,不作为学习借鉴
  7. 解决Windows 11 NumLock键盘数字灯不亮的问题
  8. html css动漫素材,66种特效的CSS3动画库animate.css
  9. 【Unity好用插件】PSD文件转UI插件——Psd 2 Unity uGUI Pro ★★★完整过程
  10. java 系统临时目录_在java中创建临时文件夹
  11. “没有银弹”的由来!
  12. Oracle 常用 语句
  13. 优化易语言程序占用内存
  14. Bluetooth---蓝牙
  15. vs 项目重新生成无反应,仍然执行之前原先代码
  16. 5/17/2015 今週日本語勉強の纏め
  17. 2022 最新 Android 基础教程,从开发入门到项目实战【b站动脑学院】学习笔记——实战三:购物车
  18. 【XJTUSE 计算机组成与结构笔记】第十三章 精简指令集计算机
  19. KDD CUP99数据集预处理(Python实现)
  20. find a way to escape题解

热门文章

  1. java byte缓存_java-如何使用带byte []键的番石榴缓存?
  2. getallheaders函数在服务器报500错误_C语言服务器编程必备常识
  3. css 3d魔方源代码,CSS3 3D环境实现立体 魔方效果代码(示例代码)
  4. linux连接池等待时间,LINUX系统下解决time_wait 连接数过多问题
  5. 个人站立会议(11月16日)
  6. Go语言内置的基础类型
  7. Centos6.9下RocketMQ3.4.6高可用集群部署记录(双主双从+Nameserver+Console)
  8. Canvas实战---模仿GOOGLE浮动小球效果
  9. SilverLight明日起通过微软更新推送
  10. 澳大利亚新南威尔士大学 巩东博士 招收若干名计算机视觉和机器学习方向PhD...