Shell
攻城狮Kevin
爱学习,爱工作,爱生活
展开
-
Shell脚本判断HDFS路径是否存在,且判断其是否为空(hive表是否没数据)
hadoop命令中,-test的用法-test -[defsz] <path> : Answer various questions about <path>, with result via exit status. -d return 0 if <path> is a directory. -e return 0 if <...原创 2020-03-15 03:42:03 · 2842 阅读 · 2 评论 -
运行脚本hdfs: command not found解决方案
添加hadoop路径export HADOOP_HOME=/usr/lib/software/hadoop/binexport PATH=$PATH:$HADOOP_HOME原创 2019-12-19 23:08:32 · 3123 阅读 · 1 评论 -
shell中解析json变量,获取key对应的value值
shell中对json变量进行解析,获取key1对应的value1的值,如下:s="{"key1":"abc","key2":"value2","key3":"value3"}"parse_json(){echo "${1//\"/}" | sed "s/.*$2:\([^,}]*\).*/\1/"}value=$(parse_json $s "key1")echo $value...原创 2019-12-18 11:37:54 · 21164 阅读 · 0 评论 -
关于yarn上spark任务报错/bin/bash: /opt/soft/jdk/jdk1.8.0_66/bin/java: No such file or directory
报错日志如下:/bin/bash: /opt/soft/jdk/jdk1.8.0_66/bin/java: No such file or directory很明显是脚本里没有export java路径,即export JAVA_HOME=/opt/soft/jdk/jdk1.8.0_66找到服务器的home路径,然后ls -all找到隐藏文件.bashrcvim编辑后,追加ex...原创 2019-12-11 10:42:16 · 2341 阅读 · 1 评论 -
如何解决java.lang.SecurityException: Invalid signature file digest for Manifest main attributes
治标的方法:打包后手动执行下面命令删除jar包里的重复文件zip -d your.jar 'META-INF/.SF' 'META-INF/.RSA' 'META-INF/*SF'治本的方法:暂无原创 2019-11-28 18:52:31 · 2008 阅读 · 0 评论 -
shell时间戳与日期格式相互转换
1. 时间戳转日期a=`date -d @1574179199 "+ %Y-%m-%d %H:%M:%S"`echo $a2019-11-19 23:59:592. 日期转时间戳a=`date -d "2019-11-19 23:59:59" +%s`echo $a1574179199原创 2019-11-19 22:39:59 · 962 阅读 · 0 评论 -
shell脚本中利用${source//#/ }实现将字符串做成array数组
利用${source//#/ }实现将字符串做成array数组,本质是利用了将source变量中所有的#符号变成了空格。source=1#sdg#dddarray=(${source//#/ })echo ${array[1]}得到:sdg...原创 2019-11-19 20:30:00 · 479 阅读 · 0 评论 -
shell脚本中${...}函数的用法总结
目录1、${var}2、${#var}3、${var#}4、${var##}5、${var%}6、${var%%}7、${var::}8、${var//}9、${var///}10、${var/#/}11、${var/%/}1、${var}限定变量。如果一个变量名A是另一个变量名AB的前部分,那么,如果要在AB相连时,要得到A的值,就必须使用...原创 2019-11-19 20:27:13 · 1582 阅读 · 0 评论 -
shell中执行命令随笔
1. 需要将命令后台挂起执行,不管命令执行成功与否,脚本继续往下执行nohup 命令 > /dev/null 2>&1 &2. 需要等待命令执行完毕后,脚本才继续往下执行./check_90d_data.sh ${sday} > XXXX.log 2>&13. 脚本中需要进行计算result=$((${XXXX}*1000)...原创 2019-09-11 20:59:23 · 895 阅读 · 0 评论 -
shell动态循环监控HDFS路径下新分区是否生成的脚本
用户画像项目DataToES环节中,需要在kettle启动之前动态监控${sday}的90d数据是否已经生成,不用公司xcenter的方案如下:每隔5min动态监控HDFS路径下${sday}新分区文件夹是否生成:方案一:${_HADOOP_BIN} fs -text /HDFS路径/${sday}/*00000*|head -10|wc -l监控HDFS路径下文件,查看前10...原创 2019-09-11 20:50:47 · 752 阅读 · 0 评论 -
shell脚本中变量运算
变量运算用$(())start=123end=$((${start}*1000))echo ${end}-----------------------------123000原创 2019-09-11 15:11:40 · 527 阅读 · 0 评论 -
curl不打印% Total信息
在shell中使用curl命令操作ES的时候,打印日志会报如下信息 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed100 ...原创 2019-09-11 10:58:24 · 5210 阅读 · 0 评论 -
shell中常用的各种条件判断 [ conditition ]
shell中涉及到条件判断的语法是[ condition ],注意condition前后需要有空格,否则运行报错可以通过echo $?输出结果是否为0来看条件判断是否为true条件非空即为true1. 比较两个整数大小= 比较字符串-eq 等于(equal) -gt 大于(greater than) -lt 小于(less than)-le 小于...原创 2019-02-10 17:57:52 · 1278 阅读 · 0 评论 -
shell中各种循环判断的标准语法 if/case/for/while & read
1. if判断注意[ condition ]间有空格,if后有空格[condition]用法(1)一种情况 if ;then ... fiif [ condition ];then 程序fi(2)多种情况 if then ... elif then ... else ... fiif [ condition ]then 程序elif [ condi...原创 2019-02-10 19:35:26 · 803 阅读 · 0 评论 -
shell的常用工具 cut sed awk sort
目录1. cut(-d -f)2. sed(-e a d s)3. awk(-F、-v)(NR、NF)4. sort(-t -n -r -k)1. cut(-d -f)cut用于在文件中剪切字节、字符、字段,并将这些数据输出cut -d 分隔符 -f 列号 filename-d后接分隔符,将文件按照分隔符分成若干列-f后接列号,提取第几列, 后接n-表示...原创 2019-02-10 20:17:13 · 737 阅读 · 0 评论 -
Shell中>/dev/null 2>&1和2>&1 >/dev/null
在Linux系统中0,1,2是一个文件描述符:0:system in,标准输入1:system.out,标准输出2:system.error,标准错误输出>&是一个整体,2>&1指,将标准错误输出,重定向到标准输出中>/dev/null 2>&1本来1指向命令行打印,执行>/dev/null后,标准输出1重定向到/...原创 2019-02-23 09:27:25 · 1550 阅读 · 0 评论 -
Shell写脚本关于ssh执行jar包,需要刷新JDK路径的问题
比如脚本中下面这一段ssh $i "java -jar /applog/$PROJECT/$APPNAME --server.port=$SERVER_PORT >/dev/null 2>&1 &"免密登录linux服务器,执行jar包,通过ssh执行java程序,涉及到一个找不到JDK路径的问题,脚本执行会不成功。 解决方案:(1)第一种...原创 2019-02-23 16:38:18 · 853 阅读 · 0 评论 -
linux中单引号、双引号、反引号的区别
1. 单引号强引用,将引用部分所有字符还原成字面意义,变成普通String;单引号不可单独出现。[kevin@hadoop100 ~]$ A=10[kevin@hadoop100 ~]$ echo '$A'$A2. 双引号弱引用,与单引号类似,但不会屏蔽以下5个字符:美元符$、反斜杠\、反引号`、单引号'、双引号";当需要屏蔽着5个字符的含义只作为普通字符时,只...原创 2019-02-25 11:45:30 · 570 阅读 · 0 评论 -
shell编程控制结构:expr、let、for、while、until、shift、if、case、break、continue、函数、select
传送门:点这里原创 2019-06-10 14:55:47 · 337 阅读 · 0 评论 -
shell中条件判断符号()、(())、[]、[[]]、{}的作用和区别
[ condition ]、[[ condition ]]、(( condition ))都是条件表达式,区别是:[[ condition1]] && || [[condition2]]多条件协同判断,数学运算符号(+、-、*、/、%),if [[ "x$1" == "x" ]],相比[ ]是针对字符串表达式的加强版;(( condition ))中支持比较表达式(<...原创 2019-06-04 16:46:33 · 2924 阅读 · 0 评论 -
Hive和Shell各种日常用法的记录
目录1. 进入脚本当前路径2. 日期函数(1)获取往前或往后的时间并格式化(2)将时间戳,格式化成日期(date -d @时间戳 +%Y-%m-%d:%H:%M%S)(3)hive中时间戳函数(4)hive查询近7天数据(datediff函数)(5)UTF世界统一时间,北京是东八区,所以+8小时1. 进入脚本当前路径BASEDIR=`dirname $0`c...原创 2019-06-25 18:02:38 · 393 阅读 · 0 评论 -
shell常用变量,各种$
1. $n:代表列,n为数字$0代表该脚本名称,$1-$9代表输入的第1-9个参数,10以上的参数需要用大括号,${11}2. $#:获取所有输入参数的个数,在循环中比较常用3. $*和$@两个都是代表命令行中的所有参数,只有在被双引号“ ”包含时,才会有区别,$*把所有参数作为一个整体,$@把每个参数分别作为一个独立个体写一个for循环的脚本如下:[kevin@ha...原创 2019-02-10 17:39:38 · 1284 阅读 · 0 评论