【linux】shell脚本

server/2024/11/27 20:44:54/

文章目录

  • 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.ppmy.cn/server/145429.html

相关文章

Spring集成测试

Spring集成测试是一种用于测试Spring应用程序中各个组件之间的交互和集成的测试方法。它通常用于验证应用程序的整体行为&#xff0c;而不仅仅是单个组件的功能。以下是一些常见的Spring集成测试技术和工具&#xff1a; Spring TestContext Framework: Spring提供了一个强大的测…

box-im学习

box-im gitee代码 box-im 语雀文档 box-im 在线体验

2024年11月22日Github流行趋势

项目名称&#xff1a;twenty 项目维护者&#xff1a;charlesBochet, lucasbordeau, Weiko, FelixMalfait, bosiraphael 项目介绍&#xff1a;正在构建一个由社区驱动的现代Salesforce替代方案。 项目star数&#xff1a;22,938 项目fork数&#xff1a;2,413 项目名称&#xff1…

Pytorch使用手册-Tensors(专题二)

这段代码是对 PyTorch 中张量(Tensors)的详细介绍和操作演示。以下是逐步讲解: 1. 什么是张量 (Tensor) 张量是一种专门的数据结构,与 NumPy 的多维数组(ndarray)类似: 它可以在 GPU 或其他硬件加速器上运行。张量可以与 NumPy 共享内存,避免不必要的数据拷贝。它是为…

Linux基础05

虚拟机网络模式 1.桥接模式 ​ 和Windows共享一个网段&#xff0c;并且能够与Windows系统一样可以连接到互联网 ​ 说明&#xff1a;虚拟机类似于一台电脑连接到路由器 ​ 好处&#xff1a;网络稍微会快一点 ​ 坏处&#xff1a;占用路由器的IP&#xff0c;如果路由器的载…

godot游戏引擎_瓦片集和瓦片地图介绍

在 Godot 中&#xff0c;TileSet 和 TileMap 是用于处理瓦片地图的两个关键概念&#xff0c;它们的作用和用途有明显的区别。以下是两者的详细对比&#xff1a; 1. TileSet&#xff08;瓦片集&#xff09; TileSet 是资源&#xff0c;定义瓦片的内容和属性。 特点&#xff1a…

flink学习(7)——window

概述 窗口的长度(大小): 决定了要计算最近多长时间的数据 窗口的间隔: 决定了每隔多久计算一次 举例&#xff1a;每隔10min,计算最近24h的热搜词&#xff0c;24小时是长度&#xff0c;每隔10分钟是间隔。 窗口的分类 1、根据window前是否调用keyBy分为键控窗口和非键控窗口…

qt 读写文本、xml文件

写txt文件 QString fileName ui->lineEdit->text(); QString fileContent ui->textEdit->toPlainText(); qDebug()<<"test:"<<fileContent; QFile file(fileName); if(!file.open(QFile::WriteOnly|QFile::Text)) { …