一次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小時

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