0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

(調査中)shell。外部ファイルに指定の複数のポートの 握っているプロセスを見たい

Last updated at Posted at 2024-12-04

指定された複数のポートを外部ファイルに記載して、それに基づいてそれぞれのポートを使用しているプロセスを確認する場合、以下の手順を用います。

ステップ1: 外部ファイルにポート番号を記載

例えば、ports.txt という名前のファイルに以下のようにポート番号を記載します。

ports.txt
8080
3306
5432

ステップ2: シェルスクリプトでプロセスを取得

以下は、lsof または netstat コマンドを使って、ファイル内のポートごとにプロセス情報を取得するスクリプト例です。

lsof を使用した例

script.sh
#!/bin/bash

# ポート番号が記載されたファイル
PORT_FILE="ports.txt"

# ファイルを1行ずつ読み取る
while IFS= read -r port; do
    echo "=== Port $port ==="
    lsof -i :"$port" 2>/dev/null || echo "No process found for port $port"
    echo ""
done < "$PORT_FILE"

ステップ3: スクリプトの実行

スクリプトに実行権限を付与して実行します。

chmod +x check_ports.sh
./check_ports.sh

スクリプトの結果例

例えば、ports.txt に 8080 が記載されていて、そのポートでプロセスが動作している場合、以下のような出力が得られます。

=== Port 8080 ===
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java      1234 user   10u  IPv4  12345      0t0  TCP *:8080 (LISTEN)

プロセスが見つからない場合:

=== Port 5432 ===
No process found for port 5432
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?