非常に実用的な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間の実行問題の概要

推薦する

進捗バーのネイティブ JavaScript 実装

進捗バーを実装するためのJavaScriptの具体的なコードは参考までに。具体的な内容は次のとおりで...

いくつかのMySQL更新操作のケース分析

目次ケーススタディアカウント残高を更新する直接更新楽観的ロック方式ロックフリーソリューションキューイ...

MySQL のストレージ エンジンの違いと比較

MyISAM ストレージエンジンMyISAM は ISAM ストレージ エンジンに基づいており、それ...

英語: リンクタグはIEでhrefを自動的に補完します

英語: IE では、リンク タグによって href が自動的に補完されます。 Ajax Link T...

mysql5.7.24 バージョンのインストール手順と解凍時に発生した問題の概要

1. ダウンロード参考: 2. D:\MySQL\mysql-5.7.24 などの固定の場所に解凍し...

MySQL の非主キー自己増分使用例の分析

この記事では、例を使用して、MySQL の非主キーの自己増分の使用方法を説明します。ご参考までに、詳...

実用的なウェブオンラインツール12選

1.ファビコン.cc ico アイコンの Web サイトをオンラインで作成するには、画像をアップロー...

JavaScript データのフラット化の詳細な説明

目次フラット化とは何か再帰トストリング減らすアンダーコア_.平坦化_。連合_。違い要約するフラット化...

Docker は次の「Linux」になれるか?

Linux オペレーティング システムは過去 20 年間にわたってデータ センターに革命をもたらし...

UI を通じて Docker を管理する方法

Docker はますます多くのシナリオで使用されています。コマンドラインツールに慣れていない人にとっ...

LinuxにVSCodeをダウンロードしてインストールし、プログラミングを使用して現在の時刻を出力する

rpmコマンドがソフトウェアのインストールに使用するパラメータはどれですか: -i rpm コマンド...

MySQL 8.0.18 のインストールと設定のグラフィックチュートリアル

学習目標: Windowsシステムを使用してMySQLデータベースをインストールする方法を学びます。...

MySql8.0.19 インストールピットレコードを共有する

前回の記事ではMySql8.0.19のインストール手順を紹介しました。必要な方はクリックしてご覧くだ...

mysql サブクエリと結合テーブルの詳細

目次1. サブクエリとは何ですか? 2. 自己結合3. 自然な結合4. 外部接続1. サブクエリとは...