Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >工作中用到的sh脚本(持续更新)

工作中用到的sh脚本(持续更新)

作者头像
shengjk1
发布于 2025-05-16 00:01:05
发布于 2025-05-16 00:01:05
9300
代码可运行
举报
文章被收录于专栏:码字搬砖码字搬砖
运行总次数:0
代码可运行

shell脚本是一条执行完再执行下一条的。

for i in $(seq 10) for循环

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for i in $(seq 10);do
 sh ./test.sh
if [ $? -eq 0 ];then
  echo "ok"
else
  echo "flase"
fi
 sh ./testt.sh

done

shell产生测试数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#/bin/bash     
   rm -rf ./data1.txt
   touch data1.txt
  
   for((i=0;i<400000000;i++))
       do
          str1=',name';
          str2=',addr';
          str3=',phone';
          str4=',tel';
          str5=',mail_addr';
          str6=',bank_card_num';
          str7=',unit_num';
          str8=',over_due';
          str9=',flag';
          name=${i}${str1}${i}${str2}${i}${str3}${i}${str4}${i}${str5}${i}${str6}${i}${str7}${i}${str8}${i}${str9}${i}
          echo $name>>data1.txt
      done
     
   echo 'success!'

shell连接hive

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bin
source /etc/profile

#/opt/cloudera/parcels/CDH-5.4.3-1.cdh5.4.3.p0.6/lib/hive<<EOF
hive<<EOF 
use testdp; #就是hive语句,该怎么写就怎么写。
show tables;
EOF
exit;

day=KaTeX parse error: Double superscript at position 19: …te -d '-0 day' '̲+%Y-%m-%d') ech…day" day1=KaTeX parse error: Double superscript at position 19: …te -d '-0 day' '̲+%Y') echo "***…day1"

shell连hive可以得到hive执行语句返回的结果

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#/usr/bin
hive -e 'SHOW DATABASES'
d=$?
echo "$d"
if [ $d -eq 0 ];then
echo "echo"
fi

查询hadoop中hive表的大小 hadoop fs -dus /user/hive/warehouse/raw_datas.db/*20151009|awk ‘{sum+= $1};END{print sum}’ byte/1024 =kb

查询某文件中包括某个字段的行数:

grep -r ugi=hue hadoop-cmf-hive-HIVEMETASTORE-slave4.log.out|grep 2015-10-16|wc -l

shell产生一定大小的测试数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
      #!/bin/sh
       a="$(date +%s)"
       echo "开始时间:$a"
       if [ -e /root/test111 ]
              then
              while [ true ]
                 do
                                     {
                  size=`ls -l /root/test11|awk '{print $5}'`
                                      # echo "$size"
                                      if [ $size -lt 10737418240 ]
                                       then
                     {
                        echo "Hello wolrd!" >>/root/test11
                                               }        
                            else {
                                               echo "完成"
                                               break;
                           }
                                       fi
                            }&#特别是要注意:无限循环的产生线程,会占满cpu
                                     done

      fi
      b="$(date +%s)" 
      echo "结束时间:$b"
      #let d=$b-$a
      #echo "时间:$d"
      exit 0

模拟多个线程:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for i in $(seq 100);do
{ hadoop fs -put ./test /test
  if [ $? -eq 0 ];then
         echo "ok"
  else
         echo "flase"
  fi
}&
done
wait
echo "全部上传完毕!"
exit 0

删除后台一直在运行的shell(删掉之后就不能再重启了) ps -ef |grep test.sh ps axu|grep test.sh

shell之while日期

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
      a="$(date +%s)"
       echo "$a"
       n=0
       while [ $n -lt 1000 ]
       do
            n=`expr $n + 1`
            echo "$n"
       done
       b="$(date +%s)"
      echo "$b"
      let c=$b-$a
      echo "$c"ongoing

shell中拼接字符串:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/sh
for i in $(seq 10);do
{
        hadoop fs -mkdir /"test""$i"

}
done
exit 0
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/sh
for i in $(seq 100);do
{
        hadoop fs -put ./test /"test""$i"
         echo "$i"
}&
done
exit 0

比较两个数不相等 特别是在判断上一个程序的执行状况时,要用不等于0,因为非正常退出是不等于0。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#/usr/bin
a=0
if [ 1 -ne 0 ];then
echo 's'
fi

查找某个字段: grep -i “2015-11-30 17:36:05.343” ./000000_0

对比两个文件,将相同的部分重定向到另外一个文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash
file=$1
sourcefile=$2
outPath=$3

while read line
do
   echo $line
   grep "$line"  $2 >>$3
done < $file

每天跑批从hdfs上将数据重定向到一文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash
source /etc/profile
#存放文件的目录
path1=/home/datacenter/txanyihua/
#get表的目录
path=/home/datacenter/txanyihua/blacklist/
rm -rf "$path1"/blacklist*
hadoop fs -get /user/hive/warehouse/appq.db/blacklist  "$path1"
i=0
for file2 in `ls -a $path`
    do
       if [ x"$file2" != x"." -a x"$file2" != x".." ];then
           if [ -f "$path$file2" ];then
                                let i=$i+1
                echo "$path$file2"
                mv  "$path$file2"  "$path1"/blacklist_tmp$i
                cat  "$path$file2" >>  "$path1"/blacklist_tmp
           fi
       fi
    done
if [ $? -ne 0 ];then
 exit 1
fi

时间操作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash
if [ $# -eq 1 ];then
  n_date=`date -d $1 +"%Y%m%d"`
  echo "$n_date +o"
else
  n_date=`date -d yesterday +"%Y%m%d"`
   echo "$n_date +o0"
fi

遍历文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for file in ./*
do
    if test -f $file
    then
        echo $file 是文件
    else
        echo $file 是目录
    fi
done

是否包含某个字符串

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if [[ $file =~ $strA ]]
    then
   echo  `hadoop fs -ls "$file"/chain_status=active`
   fi

将数据上传至hdfs

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for i in {19978..432000};
do
  cp date\=2016-11/part  date\=2016-11/part-00000$i
  echo $i
  hadoop fs -put date\=2016-11/part-00000$i /user/hive/warehouse/scan_details/ecodeid=xmht01/date=2016-11 &
 # rm -rf date\=2016-11/part-00000*
  sleep 2s	
done

获取当前目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
FWDIR="$(cd `dirname $0`/..; pwd)"
nohup sh $FWDIR/bin/scanSpark.sh   >>$FWDIR/log/scanSpark.log>&1 &(>/dev/null 2>&1 &
)

history显示时间

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export HISTTIMEFORMAT="%F %T `whoami` "  

某条命令的执行时间及耗时

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/usr/bin 
export HADOOP_USER_NAME=hdfs 
startTime=$(date +%s)
sleep 2
endTime=$(date +%s)
time=$(($endTime-$startTime))
echo $time
echo "$(date +%Y-%m-%d%t%H:%M:%S)  ----> tbl_tc_tmpfileassign --->$time s" >>./sqoop.log
echo over

远程ssh执行命令并退出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for kylinIp in cdh02 cdh03 cdh04
do 
  echo $kylinIp
  ssh $kylinIp > /dev/null 2>&1 << eeooff
   touch abcdefg.txt
   echo `/sbin/ifconfig|sed -n '/inet addr/s/^[^:]*:\([0-9.]\{7,15\}\) .*/\1/p'|awk 'NR==1{print}'`
   exit
eeooff
   echo done!
 # echo `/sbin/ifconfig|sed -n '/inet addr/s/^[^:]*:\([0-9.]\{7,15\}\) .*/\1/p'|awk 'NR==1{print}'`
done 

后台启动

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
nohup spark2-submit   --master yarn-client  --jars $(echo sparklib/*.jar | tr ' ' ',') --class com.ishansong.bigdata.Infos ./dynamic-premium-1.0-SNAPSHOT.jar > /dev/null 2>&1 &

删除指定天的数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export HADOOP_USER_NAME=hdfs

time=$(date -d "-7 day" "+%Y%m%d")
bb= rm -rf /mnt/rexec/crawler_shunfeng/crawler-shunfeng-timer-${time}.txt
echo $bb

time=$(date -d "-0 day" "+%Y%m%d")

echo $time

hadoop fs -rmr  /user/hive/warehouse/crawler/crawler-shunfeng-timer-${time}.txt
#echo $cc
hadoop fs -put /mnt/rexec/crawler_shunfeng/crawler-shunfeng-timer-${time}.txt  /user/hive/warehouse/crawler/
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-05-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
工作中用到的sh脚本(持续更新)
day=(date−d‘−0day′‘+echo“(date−d‘−0day′‘+echo“(date -d ‘-0 day’ ‘+%Y-%m-%d’) echo “day” day1=$(date -d ‘-0 day’ ‘+%Y’) echo “**$day1”
shengjk1
2018/10/24
9260
日常shell练习题-03(持续更新…)
打印乘法口诀 #! /bin/bash ##printing 9*9 list ##written by zhdya_20171004 for m in `seq 1 9` do for n in `seq 1 $m` do dd=$[$m*$n] echo -ne "$n x $m = $dd \t" done echo done 写脚本,用来实现交换两个文件或目录的名字。 #! /bin/bash ##change the file or dir's name. ##writ
老七Linux
2018/05/31
1.1K0
LINUX脚本使用实战,持续更新
结果测试 [root@zabbix shell]# sh checkurl.sh www.baidu.com www.baidu.com url [ 确定 ]
cuijianzhe
2022/06/14
2K0
LINUX脚本使用实战,持续更新
由Impala-3316导致的并发查询缓慢问题
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github: https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 我们在前面的文章中介绍了《当Impala碰到由Hive生成的timestamp数据》,当Hive生成的parquet文件带有timestamp字段时,使用Impala查询时会出现时区与OS本地时区不一致的问题,因为Impala默认使用的是UTC时区。通过在Impala Daemo
Fayson
2018/07/12
1K0
【DB笔试面试275】 与SHELL脚本相关的一些笔试面试题(目前36道,后续持续更新)
本小节以几道真题为例,简单讲解与SHELL有关的面试题。在实际工作中,要写的SHELL脚本要复杂得多。
AiDBA宝典
2019/09/29
9560
【DB笔试面试275】 与SHELL脚本相关的一些笔试面试题(目前36道,后续持续更新)
sh脚本
上面命令的意思是,如果Command1命令运行成功,则继续运行Command2命令。
用户7962184
2020/11/20
11.1K0
sh脚本
Linux常用Shell脚本,值得学习及收藏
在运维中,尤其是linux运维,都知道脚本的重要性,脚本会让我们的 运维事半功倍,所以学会写脚本是我们每个linux运维必须学会的一门功课,这里收藏linux运维常用的脚本。如何学好脚本,最关键的是就是大量的练习 和实践。根据以下脚本我们可以拓展,这样我们提高的很快!举一反三!
互扯程序
2018/12/07
3.4K0
整理了一批脚本标准的函数模块(2021版)
从1叠加到100{ echo $[$(echo +{1..100})] echo $[(100+1)*(100/2)] seq -s '+' 100 |
IT运维技术圈
2022/06/26
4450
hadoop hive 分区表load至新表
hadoop hive 分区表移动 shell脚本 ### fct_path_list_history.sh #!/bin/sh . /etc/profile . ~/.bash_profile if [ $# == 2 ]; then datebeg=$1 dateend=$2 else echo "请输入开始时间和结束日期,格式为2017-04-04" exit 1 fi THIS="$0" THIS_DIR=`dirname "$THIS"` cd ${THI
大数据工程师-公子
2019/03/14
1.6K0
101个shell脚本
emm。。这个脚本是因为tomcat没有自带的能够给service开机启动的脚本,我就琢磨着自己写了一个简单的启动脚本,如下:
端碗吹水
2020/09/23
1.4K0
101个shell脚本
【DB笔试面试275】 与SHELL脚本相关的一些笔试面试题(目前37道,后续持续更新)
本小节以几道真题为例,简单讲解与SHELL有关的面试题。在实际工作中,要写的SHELL脚本要复杂得多。
AiDBA宝典
2019/09/29
1.9K0
【DB笔试面试275】 与SHELL脚本相关的一些笔试面试题(目前37道,后续持续更新)
linux常用命令汇总_unix命令大全
for i in in {1..10}; do rm -f hadoop-cmf-hive-HIVEMETASTORE-nn1.testhdp.com.log.out.$i;done
全栈程序员站长
2022/11/09
6.2K0
linux常用命令汇总_unix命令大全
清理hdfs小文件shell脚本
清理hdfs小文件shell脚本 #!/bin/bash echo "--------------------------------------------------------------------------------------------------------------------" echo "BASH_VERSION: $BASH_VERSION" echo "参数说明: " echo "从外部只传递零个参数时,遍历字典,删除 hdfs 对应日期下的文件目录" echo "从外部只传
大数据工程师-公子
2019/03/12
1.4K0
清理hdfs小文件shell脚本
如何使用Shell脚本判断HDFS文件/目录是否存在
本文主要讲述如何使用Shell脚本判断HDFS文件或目录是否存在,算是一个小技巧吧,这几天做PoC的时候感觉还挺有用的。因为HDFS设计的是“一次写入,多次读取”,不可以修改数据,只能追加或者删除,所以,如果目标文件或目录在HDFS上已经存在的话,则无法创建成功。
Fayson
2018/09/29
5.9K0
hive 处理已经存在的小文件方案
归档,archive。Hive 具有内置支持,可将现有分区中的文件转换为 Hadoop 存档(HAR),这样一个曾经由 100 个文件组成的分区只能占用约 3 个文件(取决于设置)。
王旭平
2023/03/24
8.9K0
数仓实战|两步搞定Hive数据加载到Greenplum
如果说Hive是离线数仓的代表,那么Greenplum就是MPP数据库的代表。在离线数仓的年代,以Hive为核心的数据仓库席卷数据仓库市场,几乎成为了离线数仓的代名词。但是Hive的查询能力非常弱,通常需要其它计算引擎辅助才能完成OLAP查询。
数据社
2021/08/27
1.7K0
数仓实战|两步搞定Hive数据加载到Greenplum
Hue中使用Oozie创建Shell工作流在脚本中切换不同用户
前面Fayson讲过《Hue中使用Oozie创建Ssh工作流时sudo命令执行失败问题分析》,如果不在Shell脚本中使用sudo命令该如何切换到其它呢?本篇文章主要讲述如何Hue中使用Oozie创建Shell工作流在脚本中切换用户执行Hadoop命令。本文脚本中的主要流程如下:
Fayson
2018/03/29
1.8K0
Hue中使用Oozie创建Shell工作流在脚本中切换不同用户
Shell脚本编程
脚本中一旦遇到exit命令,脚本会立即终止,终止退出状态取决于exit命令后面的数字
星陨1357
2023/03/14
2.2K0
Shell脚本编程
shell 学习笔记3
####shell结构 #!指定执行脚本的shell #注释行 命令和控制结构  第一步:创建一个包含命令和控制结构的文件  第二步:修改这个文件的权限使它可以执行,chmod u+x  第三步:执行./example(或sh example,使用此方式执行时加-x,可以看到执行过程)
py3study
2020/01/14
6030
cdh6.3.2 环境变量配置
# /etc/profile # System wide environment and startup programs, for login setup # Functions and aliases go in /etc/bashrc # It's NOT a good idea to change this file unless you know what you # are doing. It's much better to create a custom.sh shell script
静谧星空TEL
2021/04/27
1.6K0
相关推荐
工作中用到的sh脚本(持续更新)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验