linux上shell脚本数据插入mySql

一、需求描述:

在linux上写一个shell脚本实现:

每次随机写入一批数据到mysql

写完一次休眠60s继续吸入

二、脚本代码如下:testMysql.sh

#!/bin/bash


#每次插入数据量的随机数组及数组长度
insertDataCountArray=(100 500 1000 1500 2000) 
insertDataNum=${#insertDataCountArray[*]}

#名字的随机数组及数组长度
nameArray=(LiSi ZhangSan WangWu SunLiu) 
nameNum=${#nameArray[*]}

#年龄的随机数组及数组长度
ageArray=(10 20 30 40 50 60 70) 
ageNum=${#ageArray[*]}

#性别的随机数组及数组长度
sexArray=(male female) 
sexNum=${#sexArray[*]}

#历史总共插入数
insertTotalNum=0

while [ "1" = "1" ]
do
    i=1;
    #本次插入数据量
    MAX_INSERT_ROW_COUNT=${insertDataCountArray[$((RANDOM%insertDataNum))]}

    while [ $i -le $MAX_INSERT_ROW_COUNT ]
    do
        #获取名称 年龄 性别随机值
        nameValue=${nameArray[$((RANDOM%nameNum))]}
        ageValue=${ageArray[$((RANDOM%ageNum))]}
        sexValue=${sexArray[$((RANDOM%sexNum))]}
        
        insertSql="insert into user_test (name,age,sex,create_time) values ('$nameValue',$ageValue,'$sexValue',NOW());"
        echo 'sql is:'$insertSql
        
        #执行插入命令
        mysql -uroot -p123456 test -e "insert into user_test (name,age,sex,create_time) values ('name$nameValue',$ageValue,'$sexValue',NOW());"
        
        i=$(($i+1))
    done
    d=$(date +%M-%d\ %H\:%m\:%S)
    echo 'this batch data insert has finished! now is :'$d
    echo 'this insert total count:'$MAX_INSERT_ROW_COUNT
    insertTotalNum=$(($insertTotalNum+$MAX_INSERT_ROW_COUNT))
    echo 'insertTotalNum : '$insertTotalNum
    echo 'sleep 60s'
    sleep 60
done

exit 0

三、后台执行脚本命令:

nohup ./testMysql.sh > myout.log 2>&1 &

四、进程查看

ps -ef|grep testMysql.sh

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值