【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,一经查实,立即删除!

相关文章

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…

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

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

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…

大厂也在用的分布式链路追踪: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;作为第六届国际科技创新学术交流大会分…

【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创刊号上给出的定义…

《基于FPGA的便携式PWM方波信号发生器》论文分析(三)——数码管稳定显示与系统调试

一、论文概述 基于FPGA的便携式PWM方波信号发生器是一篇由任青颖、庹忠曜、黄洵桢、李智禺和张贤宇 等人发表的一篇期刊论文。该论文主要研究了一种新型的信号发生器&#xff0c;旨在解决传统PWM信号发生器在移动设备信号调控中存在的精准度低和便携性差的问题 。其基于现场可编…

一个专为云原生环境设计的高性能分布式文件系统

大家好&#xff0c;今天给大家分享一款开源创新的分布式 POSIX 文件系统JuiceFS&#xff0c;旨在解决海量云存储与各类应用平台&#xff08;如大数据、机器学习、人工智能等&#xff09;之间高效对接的问题。 项目介绍 JuiceFS 是一款面向云原生设计的高性能分布式文件系统&am…

【JavaScript】图解JS中的字符串方法

&#x1f4af; 欢迎光临清清ww的博客小天地&#x1f4af; &#x1f525; 个人主页:【清清ww】&#x1f525; &#x1f4da; 系列专栏:vue3 | TypeScript &#x1f4da; &#x1f31f; 学习本无底&#xff0c;前进莫徬徨。&#x1f31f; 目录 一.字符串查找 1.length属性 2. i…

ffmpeg视频滤镜:替换部分帧-freezeframes

滤镜描述 freezeframes 官网地址 > FFmpeg Filters Documentation 这个滤镜接收两个输入&#xff0c;然后会将第一个视频中的部分帧替换为第二个视频的某一帧。 滤镜使用 参数 freezeframes AVOptions:first <int64> ..FV....... set first fra…

云计算-华为HCIA-学习笔记

笔者今年7月底考取了华为云计算方向的HCIE认证&#xff0c;回顾从IA到IE的学习和项目实战&#xff0c;想整合和分享自己的学习历程&#xff0c;欢迎志同道合的朋友们一起讨论&#xff01; 第三章&#xff1a;常见设备 交换机 二层交换机和三层交换机&#xff0c;所谓二层交换机…

问题记录-Java后端

问题记录 目录 问题记录1.多数据源使用事务注意事项&#xff1f;2.mybatis执行MySQL的存储过程&#xff1f;3.springBoot加载不到nacos配置中心的配置问题4.服务器产生大量close_wait情况 1.多数据源使用事务注意事项&#xff1f; 问题&#xff1a;在springBoot项目中多表处理数…

瑞派宠物医生 | 热爱与实践交织,专注宠物口腔健康

热爱与实践交织的兽医梦 瑞派上海乔登宠物医院院长陈德举自小便与赛鸽结下了不解之缘&#xff0c;家族中饲养赛鸽的传统不仅让他对鸟类产生了浓厚的兴趣&#xff0c;更在心中埋下了成为一名兽医的种子。在面临高考这一人生重要抉择时&#xff0c;他毫不犹豫地选择了兽医专业&am…

【AIGC】如何准确引导ChatGPT,实现精细化GPTs指令生成

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: AIGC | 提示词Prompt应用实例 文章目录 &#x1f4af;前言&#x1f4af;准确引导ChatGPT创建爆款小红书文案GPTs指令案例&#x1f4af; 高效开发GPTs应用的核心原则明确应用场景和目标受众构建多样化风格模板提问与引…

json格式数据集转换成yolo的txt格式数据集

这个代码是参考了两个博客 我是感觉第一篇博客可能有问题&#xff0c;然后自己做了改进&#xff0c;如果我是错误的或者正确的&#xff0c;请各位评论区说一下&#xff0c;感谢 Json格式的数据集标签转化为有效的txt格式(data_coco)_train.json-CSDN博客 COCO&#xff08;.j…