【linux】shell脚本

文章目录

  • 1. jar包启动脚本
    • 1.1 方式一
    • 1.2 方式二
  • 2. 进程关闭脚本
  • 3. 操作mysql
  • 4. impala建表语句提取
  • 5. 监控磁盘存量
  • 6. 清日志脚本
  • 7. 替换tomcat的启动端口
  • 8. 将一行数据按照空格依次读取

1. jar包启动脚本

1.1 方式一

#!/bin/sh
RESOURCE_NAME=/usr/local/applications/screen/monitors-0.0.1-SNAPSHOT.jar
JAVA_JOME=/opt/jdk1.8.0_91/bin/javaecho 'Start Process...'
if [ -f $RESOURCE_NAME ]; thennohup $JAVA_JOME -Dfile.encoding=UTF-8 -jar $RESOURCE_NAME >/dev/null 2>&1 &echo Start Success!
elseecho Start fail, the file $RESOURCE_NAME is not exist!
fi

/dev/null 是标准错误,有时候屏幕上可以看到,但是重定向的文件中看不到的就是它了 >为重定向符号 >/dev/null 是一个特殊的设备文件,这个文件接收到任何数据都会被丢弃,俗称“黑洞”

1.2 方式二

nohup jar   -jar monitors-0.0.1-SNAPSHOT.jar >/dev/null 2>&1 &

2. 进程关闭脚本

pid=`ps -ef | grep eask-monitors-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}'` 
kill -9 $pid 

3. 操作mysql

#!/bin/bash                                                                                                                                         
mysqlTest(){                                                                                                                                        mysql -uroot -p123456 << EOF                                                                                                                    use cloud_test                                                                                                                                  select now();                                                                                                                                   exit                                                                                                                                            
EOF                                                                                                                                                 
}                                                                                                                                                   
mysqlTest

4. impala建表语句提取

#!/bin/bash# Impala连接信息
echo '开始连接'
IMPALA_HOST="aaa.bbb.ccc.ddd"
IMPALA_PORT="30065"
IMPALA_USER="aaa"
DATABASE_NAME="pdm"
# 导出文件路径
EXPORT_FILE="impala__create_table_all.txt"# 获取所有表名
TABLES=`impala-shell -i ${IMPALA_HOST}:${IMPALA_PORT} -u ${IMPALA_USER}  --quiet -B -q "SHOW TABLES IN ${DATABASE_NAME};"`# 遍历每个表,生成建表语句并追加到文件
for TABLE in ${TABLES}; doecho '开始提取表:'${TABLE}'的建表语句'QUERY="SHOW CREATE TABLE ${DATABASE_NAME}.${TABLE};"TABLE_SQL=`impala-shell -i ${IMPALA_HOST}:${IMPALA_PORT} -u ${IMPALA_USER}  --quiet -B -q "${QUERY}"`echo $TABLE_SQL';' >> ${EXPORT_FILE}sleep 4
done
echo "表结构导出完成,文件保存在 ${EXPORT_FILE}"# impala语法
# --quiet:这个选项指示 Impala 在执行查询时不显示额外的信息,只输出查询结果。它可以帮助使输出更加清晰。
# -B:这个选项用于以无格式的批处理模式运行 Impala。设置了这个选项后,Impala 会以纯文本格式输出结果,每个单元格之间用制表符分隔。
# -q:这个选项后面要跟随要执行的 Impala 查询语句。在脚本中,我们将脚本中的建表查询作为参数传递给这个选项,以便执行查询。

5. 监控磁盘存量

#!/bin/bash
# $1 用户名称,可以识别的
exist_=$(df -h |grep $1 |awk '{gsub("%","",$(NF-1));print $(NF-1)}');
IP_=$(ifconfig |grep inet |grep Bcast |awk  '{gsub(":"," ",$0);print $3}')
max_=0
if (($exist_>=$max_))
then 
curl -X POST xxx -d "{\"aaa\":\"xxxx\",\"orderContent\":\"$IP_】存储快满了,现在存储为【$exist_%】\"}"
fi

6. 清日志脚本

find [search_path]   -mtime  +9 -exec command {} \; >/dev/null 2>&1 ;
+9: 这里的 + 表示“大于”,数值 9 指定一个时间间隔,即文件的修改时间距离当前时间应该大于9天
-1:-1 表示查找最后修改时间在 024 小时(不包括 24 小时)内的文件。1天内
+1:查找最后修改时间超过1天的文件。find /aaaa/bbbb/logs -mtime +0 -exec rm -f {} \; >/dev/null 2>&1;(最后修改时间至少是一天前,+0特殊)
find /aaaa/bbbb/logs -mtime +1 -exec rm -f {} \; >/dev/null 2>&1;(最后修改时间至少是一天前)

7. 替换tomcat的启动端口

run sed  -i 's|"8080"|"7001"|' server.xml

8. 将一行数据按照空格依次读取

#!/bin/bash
podnames=$(sudo kubectl -n zj-ywxt-ns get pod|grep aaa|awk '{print $1}'|sort)
#echo $podnames
# 直接使用for循环读取数据项
# 注意:这里我们不需要设置IFS,因为for循环默认会按空白字符分割输入
for item in $podnames; doecho "Item: $item"
done

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/62031.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flume和kafka的整合:使用Flume将日志数据抽取到Kafka中

文章目录 1、Kafka作为Source【数据进入到kafka中&#xff0c;抽取出来】2、kafka作为Sink 【数据从别的地方抽取到kafka里面】 1、Kafka作为Source【数据进入到kafka中&#xff0c;抽取出来】 kafka源 --> memory --> 控制台&#xff1a; a1.sources r1 a1.sinks k1…

vue3 reactive响应式实现源码

Vue 3 的 reactive 是基于 JavaScript 的 Proxy 实现的&#xff0c;因此它通过代理机制来拦截对象的操作&#xff0c;从而实现响应式数据的追踪。下面是 Vue 3 的 reactive 源码简化版。 Vue 3 reactive 源码简化版 首先&#xff0c;我们需要了解 reactive 是如何工作的&…

scala模式匹配

object test47 {def main(args: Array[String]): Unit {val id"445646546548858548648"//取出id前两位val provinceid.substring(0,2) // println(province) // if (province"42"){ // println("湖北") // }else if(province&quo…

旋转磁体产生的场 - 实验视频资源下载

先发几个视频&#xff0c;是2019年所作的实验内容 更多视频&#xff0c;到某宝找我吧。注意&#xff1a;是收费的。 20190312-180244-旋转磁体产生的场造成激光功率减小 https://download.csdn.net/download/u014161757/90038058 20190313-090956-旋转磁体产生的场对真空介电…

AI加持,华为全屋智能品牌升级为“鸿蒙智家”

1.传统智能家居的困境&#xff1a;从便利到繁琐 近年来&#xff0c;智能家居因其便捷性和科技感受到消费者的青睐。然而&#xff0c;随着用户需求的多样化&#xff0c;传统智能家居的弊端逐渐显现&#xff1a; 设备连接复杂&#xff0c;品牌间兼容性不足&#xff0c;用户不得不…

【后端面试总结】MySQL索引

数据库索引不只一种实现方法&#xff0c;但是其中最具代表性&#xff0c;也是我们面试中遇到最多的无疑是B树。 索引为什么选择B树 数据量很大的查找&#xff0c;是不能直接放入内存的&#xff0c;而是需要什么数据就通过磁盘IO去获得。 红黑树&#xff0c;AVL树等二叉查找树…

ASP.net WebAPI 上传图片实例(保存显示随机文件名)

[HttpPost]public Task<Hashtable> ImgUpload(){// 检查是否是 multipart/form-dataif (!Request.Content.IsMimeMultipartContent("form-data"))throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);//文件保存目录路径string SaveTempPat…

string类部分(C++)

目录 1. string类 1.1 auto和范围for auto关键词&#xff1a; 范围for&#xff1a; 1.2 string类的常用接口说明 a&#xff09;string类对象的常见构造 b&#xff09; string类对象的容量操作 size与length&#xff1a; capacity: empty: clear: reserve: 1.reserve&am…

Oracle RAC 环境下数据文件误建在本地目录的处理过程

问题描述 在 Oracle RAC 环境中&#xff0c;有时会误将数据文件创建在本地目录&#xff0c;导致其他节点无法访问该数据文件&#xff0c;从而报出 ORA-01157 和 ORA-01110 错误。 问题分析 错误日志 Mon Nov 16 19:02:38 2021 Errors in file /u01/app/oracle/diag/rdbms/orc…

大厂也在用的分布式链路追踪:TraceIdFilter + MDC + Skywalking

痛点 查线上日志时&#xff0c;同一个 Pod 内多线程日志交错&#xff0c;很难追踪每个请求对应的日志信息。 日志收集工具将多个 Pod 的日志收集到同一个数据库中后&#xff0c;情况就更加混乱不堪了。 解决 TraceId MDC 前端每次请求时&#xff0c;添加 X-App-Trace-Id 请…

Dashboard Tactics

1&#xff1a;相关链接Dashboard Tactics :: OpenCPN Dashboard Tactics Plugin rgleason/dashboard_tactics_pi: OpenCPN dashboard built-in plugin merger with external tactics_pi plugin NMEAconverter :: OpenCPN 2&#xff1a;显示样式 3&#xff1a;代码 这个插件…

【leetcode】动态规划

31. 873. 最长的斐波那契子序列的长度 题目&#xff1a; 如果序列 X_1, X_2, ..., X_n 满足下列条件&#xff0c;就说它是 斐波那契式 的&#xff1a; n > 3对于所有 i 2 < n&#xff0c;都有 X_i X_{i1} X_{i2} 给定一个严格递增的正整数数组形成序列 arr &#xff0…

24.11.26 Mybatis2

resultMap 中的标签和属性 如果是主键列 一般用id标签对应 propertyjava对象的属性 column 数据库中的列( javaType实体类数据类型 jdbcType数据库列的数据类型 ) 不需要配置 <id property"empno" column"empno" />如果是普通列 一般用result对…

第六届国际科技创新学术交流大会暨新能源科学与电力工程国际(NESEE 2024)

重要信息 会议官网&#xff1a;nesee.iaecst.org 会议时间&#xff1a;2024年12月6-8日 会议地点&#xff1a; 中国-广州&#xff08;越秀国际会议中心) 大会简介 新能源科学与电力工程国际学术会议&#xff08;NESEE 2024&#xff09;作为第六届国际科技创新学术交流大会分…

随笔20241126 Kafka 消费者的自动提交与手动提交偏移量详解

Kafka 是一种流行的分布式消息系统&#xff0c;用于处理大量实时数据。消费者在消费消息时&#xff0c;需要跟踪其消费的位置&#xff08;即偏移量&#xff0c;offset&#xff09;。对于 Kafka 消费者来说&#xff0c;偏移量的提交是至关重要的&#xff0c;因为它决定了消费者在…

Vue.js 指令详解:v-bind, v-html, v-once, v-on, v-if, v-else-if, v-else 和 v-model

Vue.js 是一个用于构建用户界面的渐进式框架&#xff0c;它通过一系列的指令来实现数据与 DOM 的绑定。在本篇博客中&#xff0c;我们将通过一个示例来介绍 Vue 3 中的一些常用指令&#xff1a;v-bind, v-html, v-once, v-on, v-if, v-else-if, v-else 和 v-model。 1. v-bind…

【es6】原生js在页面上画矩形添加选中状态高亮及显示调整大小控制框(三)

接上篇文章&#xff0c;这篇实现下选中当前元素显示调整大小的控制框&#xff0c;点击document取消元素的选中高亮状态效果。 实现效果 代码逻辑 动态生成控制按钮矩形,并设置响应的css // 动态添加一个调整位置的按钮addScaleBtn(target) {const w target.offsetWidth;con…

文心一言与千帆大模型平台的区别:探索百度AI生态的双子星

随着人工智能技术的迅猛发展&#xff0c;越来越多的公司开始投入资源开发自己的AI解决方案。在中国&#xff0c;百度作为互联网巨头之一&#xff0c;不仅在搜索引擎领域占据重要位置&#xff0c;还在AI领域取得了显著成就。其中&#xff0c;“文心一言”和“千帆大模型平台”便…

【西瓜书】神经网络-MP神经元、感知机和多层网络

神经网络&#xff08;neural networks&#xff09;的定义&#xff1a;神经网络是由具有适应性的简单单元组成的广泛并行互联的网络&#xff0c;它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应。&#xff08;T. Kohonen 1988年在Neural Networks创刊号上给出的定义…

Java的日期和时间的格式化

目录 引言 使用SimpleDateFormat 使用DateTimeFormatter 格式化模式 注意事项 引言 在Java中&#xff0c;日期和时间的格式化是通过java.text.SimpleDateFormat类或更现代的java.time.format.DateTimeFormatter类来实现的。随着Java 8的发布&#xff0c;推荐使用java.time…