一、需求描述:
在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