2017-01-07 11 views
1

IPアドレスとポート番号のみを含むファイルがあります。私はその名前でサービスを開始する方法を知っていますが、ポート番号で開始し停止する方法はありますか?ここポート番号でサービスをリモートで開始および停止する方法は?

for port in $(cat /home/asd/iplog.txt); do 
    service /etc/init.d/$port | cut -d\: -f2 start 
done 

はiplog.txt出力されます。

192.168.1.2:21 
192.168.2.25:80 
192.168.5.230:25 

とスクリプトの出力:

  • 方法:

    /etc/init.d/192.168.1.2:21: unrecognized service 
    cut: start: no such file or directory 
    /etc/init.d/192.168.2.25:80: unrecognized service 
    cut: start: no such file or directory 
    

    は今、私は2つの質問がありますそのポート番号でサービスを開始し、停止しますか?

  • リモートから行う方法は?

私はシェルスクリプトに慣れていないので、本当に助けてください。

+0

私はアプローチは、本質的に欠陥がある、と思う:すべての賢明なシステムが機能するために、サービスが知られている必要があり、時々のサービスは例えば、一部のオーケストレーション・ソリューションを使用してくださいなど、開始したり、特定の順序で停止する必要があります、塩、あなたのサービスを管理する。 –

答えて

0

ポート番号でサービスのPID /コマンドを見つけるにはどうすればよいですか?

サービスを停止するには、そのサービスを停止することができます。しかし、これは最善の方法ではありません。

#lsof-i :22 
Command PID USER FD TYPE DEVICE SIZE/OFF NODE NAME 
sshd 14543 root 3u IPv4 4132251  0t0 TCP *:ssh (LISTEN) 
sshd 14543 root 4u IPv6 4132253  0t0 TCP *:ssh (LISTEN) 
#ps 14543 
PID TTY  STAT TIME COMMAND 
14543 ?  Ss  0:00 /usr/sbin/sshd 

遠隔からの操作方法は?

ssh [email protected] 'your command to stop service' 
+0

"lsof -i:port"は、サービスが実行中であるかどうかを示します。それはサービスの権利を開始または停止していませんか? –

+0

@RAZHamraz権利。サービスが実行されている場合は、PIDを返します。このPIDを使用すると、コマンドラインを見つけることができます。その後、望むように開始または停止します。例えば。 ps -p 1453 -o comm =それは "sshd"を返す – Will

+0

@RAZHamraz Roman Susiが言及したように、どのサービスがそれらのポートで待ち受けているかを識別し、そのステータス/開始/停止を確認する正しいコマンドが何であるかを特定する方がよいでしょう。 – Will

関連する問題