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

推薦する

CSS による要素の中央揃えの原理の分析

CSS で要素の水平方向と垂直方向の中心を設定することは、非常に一般的な要件です。しかし、理論的には...

iframeを透明にするパラメータ

<iframe src="./ads_top_tian.html" all...

Docker+Selenium Grid に基づく技術アプリケーションをテストするためのサンプル コード

Selenium Grid の紹介Selenium Grid のいくつかの新しい機能は、今後リリース...

MacにMySQLをインストールするときに忘れたパスワードを変更する方法

1. MacにMySQLデータベースをインストールする1. MySQLデータベースをダウンロードする...

CSS トップに戻る コード例

最近のウェブサイトのほとんどはページが長く、4 画面または 5 画面の長さのものもあれば、2 画面ま...

TypeScript における列挙型の理解と応用シナリオ

目次1. 何ですか2. 使用数値列挙文字列列挙異種列挙自然3. 応用シナリオ要約する1. 何ですか列...

Linux での Python スクリプトの自動起動とスケジュール起動の詳細な手順

1. Pythonは起動時に自動的に実行されますPython の自己起動スクリプトがauto.pyで...

Ubuntu 20.04 に MySql5.7 をインストールして構成するための詳細なチュートリアル

目次1. Ubuntuソースの変更2. MySQLをインストールする3. 新しいユーザーを作成し、権...

Nginx+Keepalived でデュアルマシン マスターとバックアップを実装する方法

序文まず、高性能サーバーの高可用性またはホットスタンバイソリューションである Keepalived ...

MySQL初心者のための基本操作のまとめ

図書館運営クエリ1.SHOW DATABASE; ----すべてのデータベースを照会する2. SHO...

Linux で Redis のリモート接続を実装する方法

LinuxにRedisをインストールしたら、Javaを使って接続します。Javaコードは次のとおりで...

ログインボックスのメールプロンプトを実装するネイティブJS

この記事では、登録またはログイン時に電子メール アドレスを入力する際のドロップダウン プロンプトのネ...

ウェブサイトのパフォーマンスを向上させるために画像を最適化する方法

目次概要画像圧縮とはJPEG/JPG JPGの利点JPGの使用シナリオJPGの欠点MozJPEG を...

Vue でカスタムパスのエイリアスを設定する方法

Vue でカスタム パス エイリアスを設定する方法日常の開発では、モジュールやコンポーネントをインポ...

Linux で特定のユーザーにフォルダーのすべてのコンテンツを許可するにはどうすればよいですか?

【問題分析】 chown コマンドを使用できます。ここで ch は change (変更) を表し...