プロジェクトを達成するためのシェルスクリプトは、Tomcatを再起動します

背景: 

  手動でプロジェクトパスにTomcatのプロジェクト、毎回CDを再起動する必要があります---> CDビン---> ./ startup.sh毎日の仕事は、時には、非常に迷惑な繰り返しのCDは、CD、CDとなっています。ある時私の同僚は、自動化されたスクリプト、それに入れていないか、と言いますか?たびに、このようなことをやって、時間の無駄を超えます。私はハンズフリーのスクリプトを書くことにしました。

pythonを検討する前に、我々は後に放棄され、実現しなければなりません。現在、Pythonのサーバのバージョンは、Python 3.xの最新バージョンで、2.6.6です 

要件:

  パラメータの引き渡し:私は(プロジェクト名パラメータ)の方法により、Tomcatのプロジェクトを再起動するためのスクリプトを使用したいです。

  スクリプト名:restartApp.sh

  SH restartApp.shのtomcat-8107:スクリプトを実行します。

コード:

#!/ binに/ bashの
SET -x 
#ps_result = `PSの-ef | grepをTomcatの|はgrep $ 1` 
#echo "$ {} ps_result " 

エコー-e" N- \ N- \ \ N-" 
PIDS =` PSの-ef | grepをTomcatの|はgrepの$ 1 |。はgrepの-v 'はgrep' |はgrepの-v 'restartApp.sh' | awkの印刷$ {2} ' ` 
COUNT = 0 
pid_num = 0 
$でのPIDのために{} PIDS 
DO 
	pid_num PID = $ {} 
	エコー"pid_num:pid_num $ {}" 
	#のCOUNTはexpr $ = '1' {COUNT} + 
	COUNT = $(($カウント+ 1)。)
	エコー"COUNT:$ {COUNT}" 
DONE 

[[$カウント-gt IFを1] ] 
その後、
	「プロジェクトは、2つの異常なプロセスを持っている」エコー
	殺す-9 $ PIDは} { 
	エコー「成功キルPIDS $ {}を!」
	#が再起動し
	エコー「.......でリブート」
	/home/lifesea/$1/bin/startup.shのSh - 
Fiの
エコー-e "\ N \ N \ N"

知識ポイント:

  1. #!/ binに/ bashがシェルのルートパスの後ろに、#!特殊文字表現、実装を説明するために、このスクリプト/ binに/ bashのを使用することを指し、このスクリプトを説明することです。

  2. グレップの-vはrestartAppはラインがrestartAppフィールドが含まれていないことが判明している-v grepなど、意味の逆引きです
  3. 次のようにパスシェル変数は以下のとおりです。

    スクリーンショットのテキスト出典ます。https://www.cnblogs.com/bclshuai/p/7409773.html
  4. awkは '{$ 2印刷}' 2番目のフィールドを印刷

問題が発生しました:

1.利用抗アポストロフィ、初めて使用

2。

始まり:なし追加 下図のように(grepを除く)3は、あるプロセスをチェックアウトする「restartApp.sh」リード-v grepのを  

更改后ます。ps -ef | グリップのTomcat | grepの$ 1 |はgrep -v 'グリップ' | grepをする-v 'restartApp.sh' | awkは '{$ 2印刷}'

 

実行次の文は、次の図の結果を描きます

  $ 1変更します。grep tomcatに-8107

#ps_result = `のps -ef | grepのtomcatと| grepの$ 1`
#echo "$ {} ps_result"

 

 

サーバのデバッグ・スクリプト3.スクリプトVimは低い効率をもたらす、慣れていない理由をrestartApp.shため。

vimの一般的に使用されるショートカットキー: 

:セット番号の表示行番号

:セット冗長ログ出力を-x

前方の時間

Jダウン

k      向上

L権

今日まで、昨日の午後からZNN 4.おかげで、私は問題を突き止める支援してきました。

 

おすすめ

転載: www.cnblogs.com/eosclover/p/11208626.html