读取配置文件,进行文件位置转移

在whenb.csv中指定了需要从/home/root/cf/下移除到/home/root/cf_wh/下文件列表,whenb.csv中包含记录如下:

enb-
enb-
enb-
....

具体实现的shell脚本:

#!/bin/sh
enbArr=()
idx=
for line in `cat whenb.csv`
do
enbArr[$idx]=$line
let idx=$idx+
done for data in ${enbArr[@]}
do
$('mv /home/root/cf/'$data'.txt /home/root/cf_wh/'$data'.txt')
done

按照map配置,进行文件上传hdfs

配置map(key[path],value[文件名称])

#!/bin/sh
declare -A fLibMap
fLibMap["dx_distri_0"]="1068705,1068795,1068882,1068957,1069682,1092606,1092743,1092840"
fLibMap["dx_distri_1"]="1068706,1068796,1068883,1068958,1069683,1092607,1092744,1092841"
fLibMap["dx_distri_2"]="1068707,1068797,1068885,1068960,1069710,1092608,1092748,1092844"
fLibMap["dx_distri_3"]="1068708,1068798,1068886,1068963,1069717,1092609,1092749,1092845"
fLibMap["dx_distri_4"]="1068709,1068799,1068888,1068964,1069718,1092610,1092750,1092846"
fLibMap["dx_distri_5"]="1068710,1068803,1068889,1068966,1069721,1092611,1092751,1092847"
fLibMap["dx_distri_6"]="1068711,1068805,1068890,1068967,1069727,1092612,1092752,1092848"
fLibMap["dx_distri_7"]="1068712,1068806,1068892,1068968,1092513,1092613,1092753,1092849"
fLibMap["dx_distri_8"]="1068713,1068807,1068893,1069015,1092517,1092614,1092755,1092850"
fLibMap["dx_distri_9"]="1068714,1068808,1068894,1069023,1092518,1092615,1092756,1092851" for key in ${!fLibMap[@]};do
echo $key
hadoop fs -mkdir /user/dx/config/hb/flibTopic/$key/
fbEnbsStr=${fLibMap[$key]}
OLD_IFS="$IFS"
IFS=","
fbEnbsArr=($fbEnbsStr)
IFS="$OLD_IFS" for fbEnb in ${fbEnbsArr[@]};do
#hadoop fs -put /home/dx/oozie_signal/spark/flib/.txt /user/dx/config/hb/flibTopic/ltemr_uemr_distri_2/
hadoop fs -put /home/dx/oozie_signal/spark/flib/$fbEnb.txt hdfs://spcluster/user/dx/config/hb/flibTopic/fingerTopic/$key/
echo 'hadoop fs -put /home/dx/oozie_signal/spark/flib/'$fbEnb'.txt hdfs://spcluster/user/dx/config/hb/flibTopic/'$key'/'
done & #经过测试,这种方式也可以实现 $key 的安全性、一致性。
done # (未测试,担心安全性)可以测试线,这个循环也采用并行是否分发性能有提高。

Linux Shell:根据指定的文件列表 或 map配置,进行文件位置转移的更多相关文章

  1. linux shell 删除指定文件夹下面 名称不包含指定字符的文件

    find /app/jenkins/jenkins/jobs/scam/* ! -name config.xml | xargs rm -rf 删除/app/jenkins/jenkins/jobs/ ...

  2. linux shell 脚本攻略学习10--生成任意大小的文件和文本文件的交集与差集详解

    一.生成任意大小的文件(dd命令): 举例: amosli@amosli-pc:~/learn/example$ ; + records in + records out bytes ( MB/s a ...

  3. linux下查找指定时间内修改过的或新建的文件

    1.简单命令 # find -type f \( -newermt '2017-04-19 00:00' -a -not -newermt '2017-04-27 23:59' \) 2.简单实现(参 ...

  4. Linux下搭建Oracle11g RAC(3)----创建用户及配置相关文件

    配置11gR2 RAC需要安装Oracle Grid Infrastructure软件.Oracle数据库软件,其中Grid软件等同于Oracle 10g的Clusterware集群件.Oracle建 ...

  5. sublime text 3 文件列表忽略特定格式的文件

    Preferences->Settings ,编辑相关代码,注意JSON格式: 排除特定目录,使用:"folder_exclude_patterns" 排除特定文件,使用:& ...

  6. 查找存在某字符的文件列表,不包括svn文件

    find . ! -wholename '*.svn*' -print | xargs grep "img" | awk -F ':.' '{print $1}' | uniq

  7. Java读取Properties文件 Java加载配置Properties文件

    static{ Properties prop = new Properties(); prop.load(Thread.currentThread().getContextClassLoader() ...

  8. Linux下查找指定日期的文件

    一.背景 Linux服务器的一个目录里,每天产生海量的文件.为了防止磁盘被写满. 决定每天删除部分老文件.OK,问题来了,如何过滤出指定日期的文件? 二.强大的Linux 一行代码搞定: ls --f ...

  9. Linux Shell常用shell命令

    Linux Shell常用shell命令 一.文件.目录操作命令 1.ls命令 功能:显示文件和目录的信息 ls 以默认方式显示当前目录文件列表 ls -a 显示所有文件包括隐藏文件 ls -l 显示 ...

随机推荐

  1. nginx-ingress之server-snippet用法

    apiVersion: extensions/v1beta1 kind: Ingress metadata: annotations: nginx.ingress.kubernetes.io/serv ...

  2. nodejs puppeteer linux(centos)环境部署以及用puppeteer简单截图

    1.安装Node环境 如果有安装Node请忽略第1点 #下载cd /usr/local/srcwget https://nodejs.org/dist/v10.15.3/node-v10.15.3-l ...

  3. MySQL--使用mysqldump进行数据库版本升级

    在MySQL跨版本升级时,建议使用mysqldump方式导出用户权限和用户数据,即使是小版本升级,导出过程中也应忽略系统数据库,避免系统表不兼容. 导出用户数据库脚本和用户创建脚本 ##======= ...

  4. Android笔记(七十四) 详解Intent

    我们最常使用Intent来实现Activity之间的转跳,最近做一个app用到从系统搜索图片的功能,使用到了intent的 setType 方法和 setAction 方法,网上搜索一番,发现实现转跳 ...

  5. python关于time几种格式处理方法总结

    一.日期时间的表示方法: 时间戳 timestamp: 简介:时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量,是一个float类型 展示形式:1575278720.331 时间 ...

  6. linux的后台运行相关命令

    screen -S name 创建一个名为name的后台,或者说bash面板,在这上面运行的任务不会因为连接断开而退出,且保留bash上的信息 screen -ls 列出所有的screen scree ...

  7. dockerhub下载加速

    curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f5dad4ec.m.daocloud.io syste ...

  8. 51nod 1053 最大M子段和 V2

    N个整数组成的序列a[1],a[2],a[3],…,a[n],将这N个数划分为互不相交的M个子段,并且这M个子段的和是最大的.如果M >= N个数中正数的个数,那么输出所有正数的和. 例如:-2 ...

  9. 基于qemu和unicorn的Fuzz技术分析

    前言 本文主要介绍如果使用 qemu 和 unicorn 来搜集程序执行的覆盖率信息以及如何把搜集到的覆盖率信息反馈到 fuzzer 中辅助 fuzz 的进行. AFL Fork Server 为了后 ...

  10. 使用Apache commons-maths3-3.6.1.jar包,在hive上执行获取最大值的操作

    udf是对hive上的每行(单行)数据操作,现在我要实现对hive上的一列数据操作,udf函数已经满足不了我的要求了,使用udaf对hive的一列求最大值: 代码如下: package com; im ...