Linux Shell 代码

 1 #! /bin/bash
 2
 3 #/python2292/CNEDMp/ETLscript/CNEDMp_etl_v1.0/testhis
 4 LOAD_PATH=$(cd $(dirname $0); pwd)
 5 #/python2292/CNEDMp/ETLscript/CNEDMp_etl_v1.0
 6 DEPLOY_PATH=$(cd $(dirname $LOAD_PATH); pwd)
 7 #/python2292/CNEDMp/ETLscript
 8 BASE_PATH=$(cd "$(dirname "$DEPLOY_PATH")"; pwd)
 9 #/python2292/CNEDMp
10 MAIN_PATH=$(cd "$(dirname "$BASE_PATH")"; pwd)
11
12 FILE_LANDING=$DEPLOY_PATH‘/File_Landing.sh‘
13 LOAD_HDFS=$DEPLOY_PATH‘/Load_hdfs.sh‘
14 LOAD_HIVE=$DEPLOY_PATH‘/Load_hive.sh‘
15 LANDING_PATH=$MAIN_PATH‘/landing/‘
16 JAR_FILE=$DEPLOY_PATH‘/dailydata-1.0-SNAPSHOT.jar‘
17 INI_FILE=$DEPLOY_PATH‘/cnedmp_etl.ini‘
18 LOG_FILE=$DEPLOY_PATH‘/shellrun.log‘
19
20 CODING=‘GB2312‘
21
22 #Funtion for Log
23 function logging(){
24     logTime=$(date +"%Y-%m-%d %T")
25     echo "$logTime $1 $2"
26 }
27
28
29 source $INI_FILE
30
31 cd $LOAD_PATH
32 rm -r dataspace
33 mkdir dataspace
34 cd dataspace
35 ziplist=$(cat $LOAD_PATH/ziplist.txt)
36 logging INFO "Get zip file list $ziplist"
37 for zipname in $ziplist
38 do
39     logging INFO "-------------------Handling zipfile $zipname----------------------------"
40     cp /home/infra1/jason/DataFiles/$zipname ./
41     foldername=$(echo $zipname|awk -F .  ‘{print $1}‘)
42     echo $foldername
43     mkdir $foldername
44     unzip -d ./$foldername $zipname
45     cd $foldername
46     partition=$foldername
47     filelist=$(cat $LOAD_PATH/filelist.txt)
48     logging INFO "Get file list $filelist"
49     for filename in $filelist
50     do
51         cp $filename $LANDING_PATH && logging INFO "$filename copied to $LANDING_PATH"
52     done
53     cd ..
54     sh $LOAD_PATH/Loading_Meta_Init_history.sh $partition
55     sh $LOAD_PATH/schedule_history.sh $partition
56     cd $LOAD_PATH
57     rm -r $LOAD_PATH/dataspace
58     logging INFO "-------------------zipfile $zipname finished----------------------------"
59 done
时间: 2024-11-05 03:38:47

Linux Shell 代码的相关文章

linux shell 代码块的重定向

代码块的重定向是指在代码块内将标准输入或标准输出重定向到文件,而在代码块外还是保留默认状态,换句话说,代码块重定向指对标准输入或者标准输出的重定向只在代码块内有效.可以重定向的代码块是while.until.for,也可以是if/then,甚至是函数. while重定向 #!/bin/bash ls /etc> logs while [ "$filename" != "rc.d" ] do read filename let "count=count

一段linux shell 代码涉及for循环和if esle

if [ 0 -ne $# ]; then echo "USAGE: prog [IN]input_file" >&2; exit 1;fisource /etc/profilesource ~/.bash_profileulimit -c unlimited#./ExtractICBAData1  576_dumppages result/576.result.txt 2>log/576.stderr.txt  1>log/576.stdout.txtfor

Android 代码执行Linux Shell小记

引言 Android系统是基于Linux内核运行的,而做为一名Linux粉,不在Android上面运行一下Linux Shell怎么行呢? 最近发现了一个很好的Android Shell工具代码,在这里分享一下. Shell核心代码 import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStreamReader; import

使用windows系统编写shell代码,在linux执行后的报错

使用windows系统编写shell代码,在linux执行后,产生如下的错误 [[email protected] vagrant]# bash /var/www/borg/fuel/app/tasks/monitor_sync.sh /var/www/borg/fuel/app/tasks/monitor_sync.sh: line 11: $'\r': command not found /var/www/borg/fuel/app/tasks/monitor_sync.sh: line 1

linux shell编程

1.什么是shell 2. 还是hello world程序 3. shell中的变量 3.1 系统变量 3.2 用户定义变量 3.2.1 用户定义变量规则 3.2.3 shell如何使用变量 3.2.3 全局变量 vs 局部变量 4. shell编程中的控制结构 4.1 条件判定 4.1.1 简单条件判定 4.1.2 组合判定 4.2  if - else 4.3 for 4.4 while 4.5 case 5. shell中的函数 5.1 函数声明和定义 5.2 函数调用 6. shell脚

Linux shell脚本基础学习详细介绍(完整版)一

Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Linux 脚本编写基础◆1.1 语法基本介绍 1.1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使用/bin/sh来执行程序. 当编辑好脚本时,如果要执行该脚本,还必须使其可执行. 要使脚本可执

Linux shell脚本基础学习详细介绍(完整版)二

详细介绍Linux shell脚本基础学习(五) Linux shell脚本基础前面我们在介绍Linux shell脚本的控制流程时,还有一部分内容没讲就是有关here document的内容这里继续. Linux shell脚本基础已经被分成好几个部分了,这里对控制流程的内容也就马上讲完了,这是最后一部分关于here document,这里举例稍微有点复杂,我们慢慢来分析这个复杂Linux shell脚本. 6. Here documents 当要将几行文字传递给一个命令时,here docu

Linux shell 的一个fork炸弹

.(){ .|.& };.  或者  :(){ :|:& };: 这13个字符由Jaromil ,在 2002 年设计了最为精简的一个 fork炸弹的实现. .()  说明下面要定义一个函数,函数名为小数点,没有可选参数:{    表示函数体的开始:.|.& 表示函数体真正要做的事情,首先它递归使用本函数,然后李永贵管道调用一个新进程(它要做的事情也是递归调用本函数),并将其放到后台执行.}    表示函数体的结束:;    并不会执行什么操作,在命令行中用来分隔两个命令用.从总体

【转】十分有用的linux shell学习总结

在最近的日常工作中由于经常会和Linux服务器打交道,如Oracle性能优化.我们 数据采集服务器的资源利用率监控,以及Debug服务器代码并解决其效率和稳定性等问题.因此这段时间总结的有关Linux Shell的系列博客就给予了我极大的帮助,然而在实际的使用中却发现,有的时候确实忘记了某个技术点或某个Shell命令的使用方式曾经在哪一篇博客中 予以了说明,所以不得不多次点击多篇博客,直到找到想要那篇的为止,鉴于此,为了方便我们每个人的查阅,这里特别给出了前十二篇系列博客的目录以供大家参 阅和查

Linux shell脚本流程控制

博主搬家至51CTO,初来乍到,请多指教. 此次我们来通过实例解析Linux shell脚本流程控制 Linux shell脚本流程控制可分为三类:顺序执行,条件选择执行,循环执行 顺序执行:简单理解就是逐行执行脚本内容,逐行解读,逐行执行.(此处不做实例解析) 条件选择执行:可以理解为先进行某一条件的判断选择,再决定执行怎样的脚本内容.常见语句if case 条件选择语句:if if语句用法: 单分支 if 判断条件;then 条件为真的分支代码 fi 双分支 if 判断条件; then 条件