shell脚本生成指定规则文件用于hbase测试

MFS迁移到hbase,需要模拟较大数据量的情况,生成shell脚本记录备份如下

Mfs上的数据结构要求如下

存储目录:/opt/mfs_trip_data/trace_service/estimate/yy/mm/dd/type/orderNo后两位/

文件名称为 orderNo_1_gaode.data。订单号+轨迹类型(1送乘客,2接乘客)+gaode.data。

其中/opt/logs/order.log文件中存放的是一万条订单和订单类型数据,数据来源为订单数据库中直接导出生成,格式为:orderNo,orderType

此处orderType类型为单个数字,也可在数据库导出时直接格式化为“00”,则shell中无需做处理

 调用方式为./testguiji_shiji_gaode.shell 文件名(生成规则依赖文件) 09(月份) 23(日期)   例如./testguiji_shiji_gaode.shell order.log 10 19

也可以使用nohup /opt/logs/guiji_shell/allshell.sh > allshell.log 2>&1 &此种方式后台运行

testguiji_shiji_gaode.shell脚本内容如下

#!/bin/bash
#文件要复制到的目标路径-实际轨迹目录
targetpath="/opt/mfs_trip_data/tracerecv_service/19/$2/$3"
#待复制的源文件路径
sourcepath="/opt/logs/guiji_shell/log/shiji"
#待复制的源文件
sourcefile="T43ec6n9w1178529ea78fa46c5aa04131cab0bd71f_1_gaode.data"
#开始逐行读取订单号文件,以解析路径和文件名规则
thenfilename="_1_gaode.data"
echo "start..."
cat /opt/logs/guiji_shell/log/$1 | while read line
do
filename=`echo $line|awk -F"," '{print $1}'`
pathsource=`echo $line|awk -F"," '{print $2}'`
path1="0${pathsource:0:1}"
path2=`echo $filename|sed 's/.*\(..\)$/\1/'`
if [ ! -d "$targetpath/$path1/" ];then
mkdir -p $targetpath/$path1/$path2
cp $sourcepath/$sourcefile $targetpath/$path1/$path2/$filename$thenfilename
else
if [ ! -d "$targetpath/$path1/$path2/" ];then
mkdir $targetpath/$path1/$path2
cp $sourcepath/$sourcefile $targetpath/$path1/$path2/$filename$thenfilename
else
cp $sourcepath/$sourcefile $targetpath/$path1/$path2/$filename$thenfilename
fi
fi
done
echo "done"

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值