【linux】shell脚本

发布于:2024-11-27 ⋅ 阅读:(131) ⋅ 点赞:(0)

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/java

echo 'Start Process...'
if [ -f $RESOURCE_NAME ]; then
    nohup $JAVA_JOME -Dfile.encoding=UTF-8 -jar $RESOURCE_NAME >/dev/null 2>&1 &
    echo Start Success!
else
    echo 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}; do
    echo '开始提取表:'${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; do
    echo "Item: $item"
done


网站公告

今日签到

点亮在社区的每一天
去签到