非常に実用的なTomcat起動スクリプトの実装方法

非常に実用的なTomcat起動スクリプトの実装方法

序文

セキュリティ上の理由から、会社が Linux サーバーへのすべてのログインにセキュリティ制限を課し、管理者を除いて、Linux サーバーにログインしたい他の従業員が最高権限のアカウントでログインできないようにする必要があるシナリオがあります。新しいユーザーを作成し、ディレクトリとファイルの権限を制御し、操作する必要があるディレクトリに対して読み取り、書き込み、および実行権限のみを許可する必要があります。その他のディレクトリには読み取り権限のみがあります。さらに、startup.sh と shutdown.sh を使用して、すべての tomcat を bin で直接起動および停止することはできません。この操作は、シェル スクリプトを記述して実行する必要があります。つまり、ユーザーを作成して権限を設定する手順と、tomcat 起動スクリプトを記述する手順の 2 つがあります。以下の 2 つの手順を完了しましょう。

1. まず、通常のユーザーを作成しましょう。

groupadd tomcat #グループを追加useradd -g tomcat -s /usr/sbin/nologin tomcat #ユーザーをグループに追加usermod -L tomcat #パスワードをロックして無効にするpasswd tomcat #パスワードを設定する

これら 4 つの手順で、共通ユーザーを作成しました。ユーザーを作成するときは、まずグループを作成します。グループを作成したら、ユーザーを作成してグループに参加します。

ユーザーを作成したら、ユーザーの権限の設定を開始します。

chown -R tomcat:tomcat /data #ユーザーに権限を割り当てる

これにより、Tomcat ユーザーがデータ ディレクトリとそのサブディレクトリを操作するための権限が設定されます。-R は、ディレクトリとそのカスケード サブディレクトリを表します。

[root@localhost データ]# ls -l 
合計 0 
drwxr-xr-x. 4 tomcat tomcat 79 5月 20 08:03 tomcat 
[root@localhost データ]#

この時点で、 ls -lコマンドを使用して、データディレクトリがすでにtomcatユーザーに属しており、表示、書き込み、実行の権限を持っていることを確認できます。

2. ユーザーの作成が完了したら、Tomcat 起動スクリプトの完成を開始します。

コードに示されているように:

#!/bin/bash 
tomcat_home=/data/tomcat/tomcat-8484 
シャットダウン=$tomcat_home/bin/shutdown.sh 
STARTTOMCAT=$tomcat_home/bin/startup.sh 
ケース$1 
始める) 
echo "$tomcat_home を起動します" 
$STARTTOMCAT 
cd /data/tomcat/tomcat-8484/logs 
tail -f catalina.out 
;; 
停止) 
echo "$tomcat_home を閉じる" 
#$シャットダウン 
netstat -anp | grep 8484 | grep -v grep | awk '{print $7}' | sed -e 's//java//g' | sed -e 's/^/kill -9 /g' | sh 
#pidlist=`ps -ef |grep tomcat |grep -v "grep"|awk '{print $2}'` 
#kill -9 $pidlist 
#ログファイルを削除します。最初に削除しない場合は、次の行を省略できます #rm $tomcat_home/logs/* -rf 
#tomcatの一時ディレクトリを削除#rm $tomcat_home/work/* -rf 
;; 
再起動) 
echo "$tomcat_home を閉じる" 
$シャットダウン 
#pidlist=`ps -ef |grep tomcat |grep -v "grep"|awk '{print $2}'` 
#pidlist=`netstat -anp |grep 8484 |grep -v "grep"|awk '{print $2}'` 
#netstat -anp | grep 8484| grep -v grep | awk '{print $7}' | sed -e 's//java//g' | sed -e 's/^/kill -9 /g' | sh 
#kill -9 $pidlist 
睡眠5 
echo "$tomcat_home を起動します" 
$STARTTOMCAT 
#起動ログを見る#tail -f $tomcat_home/logs/catalina.out 
;; 
ログ) 
cd /data/tomcat/tomcat-8484/logs 
tail -f catalina.out 
;; 
エサック

上記のコードは、Tomcat の起動スクリプトです。まず、テキスト ファイルを作成し、サフィックスを .sh に変更する必要があります。ここでは、例としてポート番号 8484 の Tomcat を使用します。スクリプト ファイルから、Tomcat を使用する前に、Tomcat の場所とログの場所をカスタマイズするだけでよいことがわかります。コマンドは合計で 4 つあります: start、stop、restart、logs。

スクリプト ファイルを作成したら、それをサーバーに配置するだけです。任意の場所を選択できます。私は tomcat の下の bin ディレクトリに配置しました。

スクリプト ファイルをサーバーに配置した後、まだ使用することはできません。解決すべき問題は 2 つあります。1 つは形式の問題、もう 1 つは権限の問題です。テキストファイルを作成したので、その形式はテキスト形式ですが、Unix形式に変更したいので、次のように設定する必要があります。

sed -i "s/ 
//" tomcat-8484.sh #スクリプトファイルをUnix形式に設定する

フォーマット設定が完了したら、スクリプト ファイルの権限を設定する必要があります。Linux のデフォルトのファイル権限は drwxr-xr-x であるため、すべての実行権限はファイル所有者、つまりシステム管理者 (現在システム管理者としてログインしています) に付与され、読み取りと実行権限はグループ ユーザーに付与され、読み取り権限はその他のユーザーに付与されるため、スクリプト ファイルの権限をリセットする必要があります。

chmod 777 ./tomcat-8484.sh

chmod コマンドは権限を変更するコマンドです。777 はどういう意味ですか?

Linux システムでは、ファイルまたはディレクトリの権限は、読み取り専用、書き込み専用、実行可能の 3 種類に分けられます。


上記の表によると、権限の組み合わせは、次のように対応する権限値の合計になります。

7 = 4 + 2 + 1 読み取り、書き込み、実行権限

5 = 4 + 1 読み取りおよび実行権限

4 = 4 読み取り専用権限

したがって、 chmod 777 ./tomcat-8484.shコマンドの意味は誰もが理解できます。

この時点で Tomcat 起動スクリプトは完成しました。以下でそれを実演してみましょう。

起動する

[root@localhost bin]# ./tomcat-8484.sh 開始 
/data/tomcat/tomcat-8484 を起動します 
CATALINA_BASE を使用: /data/tomcat/tomcat-8484 
CATALINA_HOME の使用: /data/tomcat/tomcat-8484 
CATALINA_TMPDIR を使用: /data/tomcat/tomcat-8484/temp 
JRE_HOME の使用: /usr 
CLASSPATH の使用: /data/tomcat/tomcat-8484/bin/bootstrap.jar:/data/tomcat/tomcat-8484/bin/tomcat-juli.jar 
Tomcatが起動しました。

実際にプロセスが開始されたかどうかを確認してみましょう。

[root@localhost bin]# ps -ef |grep tomcat 
ルート5569 1 7 14:09 PTS/0 00:00:06/USR/BIN/JAVA -DJAVA.util.logging.config.file =/data/tomcat/tomcat-8484/ ephemeraldhkeysize = 2048 -djava.protocol.handler.pkgs = org.apache.catalina.webresources -dignore.endorsed.dirs = -classpath juli.jar -dcatalina.base =/data/tomcat/tomcat -8484 -dcatalina.home =/data/tomcat/tomcat -8484 -djava.io.tmpdir =/data/tomcat/tomcat -8484/temp org.apache.catalina.startup. 
ルート 5611 5340 0 14:10 pts/0 00:00:00 grep --color=auto tomcat

起動に問題がないことがわかります。

閉鎖

[root@localhost bin]# ./tomcat-8484.sh を停止します 
/data/tomcat/tomcat-8484 を閉じる 
sh: 行 2: kill: (18484) - そのようなプロセスはありません 
[root@localhost bin]# ps -ef |grep tomcat 
ルート 5621 5340 0 14:13 pts/0 00:00:00 grep --color=auto tomcat

プロセスが実際に正常に終了し、Tomcat 起動スクリプトが完了したことを確認します。このスクリプトは、起動直後にログを確認するなど、これに基づいて拡張することもできます。

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。

以下もご興味があるかもしれません:
  • Linux環境でシェルスクリプトを書いてTomcatサービスを開始および停止する方法
  • Windowsはバッチ処理を使用してWebをTomcatに公開し、Tomcatスクリプトの共有を開始します。
  • Tomcat の起動スクリプト (startup.bat) の解析
  • Tomcat の起動スクリプト (catalina.bat) の解析
  • バッチ スクリプトを使用してポートを決定し、Windows サーバーで Tomcat を起動する方法
  • CentOS 6はスクリプトを起動するためにtomcat8を設定します

<<:  今日、今週、今月、先月のMySQLクエリデータ

>>:  mysql maxとwhere間の実行問題の概要

推薦する

MySQLのexplain型の詳細な説明

導入:多くの場合、さまざまな選択ステートメントを使用して必要なデータを照会した後、多くの人は作業が正...

Angularの親子コンポーネント通信の詳細な説明

目次概要1. 入力および出力プロパティの概要2. 入力属性3. プロパティバインディングは親コンポー...

jsはクリックしてカードを切り替える機能を実現します

この記事の例では、クリックしてカードを切り替える機能を実現するためのjsの具体的なコードを共有してい...

MySQLデータベーストリガーの詳細な説明

目次1 はじめに2 トリガーの紹介3 トリガーを作成する4 トリガーを表示5. トリガーの削除6 結...

Mysql データベース ストアド プロシージャの基本構文の説明

プロシージャ sp_name を削除します//これまで、MYSQL 構文の基礎知識について説明して...

ウェブページの読み込み進捗状況バーの詳細な説明(推奨)

(Web ページの読み込み中に、コンテンツが多すぎて読み込みと待機が続くことがあります。このとき、...

HTML に FLASH へのリンクを追加し、すべての主要ブラウザと互換性を持たせる方法

まずコードを見てみましょうコードをコピーコードは次のとおりです。 <div style=&qu...

オブジェクトアニメーションによってブロックされずにオブジェクトに div を表示する方法

今日はメニューボタンを作りました。マウスをボタンに移動するすると、ドロップダウンサブメニューが表示さ...

MySQL データベースの 1045 エラーの解決方法

ローカル データベースがサーバー データベースに接続されているときに発生する 1045 の問題を解決...

MySQL ユーザーと権限、およびルートパスワードをクラックする方法の例

MySQL ユーザーと権限MySQL には、MySQL と呼ばれるシステムに付属するデータベースがあ...

CentOS 7.x に ZSH ターミナルをインストールする方法

1. 基本コンポーネントをインストールするまず、 yumコマンドを実行して、コードpullために必要...

JavaScript を使用して動的な QQ 登録ページを作成する

目次1. はじめに1. 基本レイアウト2. 写真を自動的に切り替える3. コンテンツを追加する4. ...

Vueインスタンスで$refsを使用する際の注意点

開発の過程では、インスタンスの vm.$refs(this.$refs) を使用して、ref で登録...

React Router で履歴リダイレクトを使用する方法

react-routerでは、コンポーネント内のジャンプは<Link>で使用できます。し...

npmとcnpmを混在させる際の落とし穴の詳細な説明

目次原因理由NPM の紹介: CNPM の紹介:より良い方法方法の改善npm と cnpm を一緒に...