一次shell脚本的练习案例

 启动微服务的脚本:

#! /bin/sh
set -m
app_path=$(pwd)
echo app path is $app_path

# 找到tomcat的进程id
app_pid=$(ps -ef|grep $app_path|gawk '$0 !~/grep/ {print $2}' |tr -s '\n' ' ')
if [ "$app_pid" ];then
  echo app process id is $app_pid
  # 杀掉app进程
  if
    kill -9 $app_pid
  then
    echo kill app process success
  else
   echo kill app process fail
  fi
else
  echo app is already dead
fi
appname=gate
jarname=sale-${appname}-1.0.0-SNAPSHOT.jar
exejarpath=$(pwd)/${jarname}
consolelog=$(pwd)/log.out
cp -pf /home/zntg/szkingdom/jarhome/${jarname} ./
java -server -Djava.security.egd=file:///dev/urandom -Xms256m -Xmx512m -Xmn128m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m -XX:LargePageSizeInBytes=64m -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -Dfile.encoding=UTF-8 -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:SurvivorRatio=20 -XX:+CMSPrecleaningEnabled -XX:+CMSClassUnloadingEnabled -XX:CMSInitiatingOccupancyFraction=70 -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+DisableExplicitGC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./dumplogs -Xloggc:./gc.log -Djava.net.preferIPv4Stack=true -jar ${exejarpath} --logging.config=./logback.xml > ${consolelog} 2>&1 &
tail -f ${consolelog}


 批量启动的脚本:

cd /home/zntg/szkingdom/master
./startup-master.sh &
sleep 30s
./startup-right.sh &
cd /home/zntg/szkingdom/autotask
./startup-autotask.sh &
sleep 90s
# 90秒后 杀死所有的tail -f log.out的进程
echo "ps -ef|grep log.out|awk '{print $2}'|xargs -i kill -9 {}"
ps -ef|grep log.out|awk '{print $2}'|xargs -i kill -9 {}

& 挂起当前shell,后台运行

sleep 30s 休眠30秒

sleep 10m休眠10分钟

sleep  1h 休眠1小时

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章