これは技術的な質問や問題ではなく、私が直面し、それを特定して解決しようとしたプログラミングシナリオなので、このシナリオに関するいくつかのヒントが必要です。
私たちのチームは、クラウド(AWS)で他の多くのユーザーのLinuxマシンを管理する必要があります。各システムは、データベースサーバー、アプリケーションサーバー、またはWebサーバーです。プログラムでこれを検出する方法はありますか?
このユーザーは私たちのチームや会社の一部ではありません。これらはエンドユーザーだけであり、私たちは許可を得なければLinuxサーバーを制御できません。したがって、問題は私たちが彼らの機械をどのように検出するかです。
たとえば、特定のLinuxシステム内で検索してデータベースサーバーかアプリケーションサーバーであるかを識別する方法は何ですか?
Linuxシステムの種類を識別する方法はありますか?
たとえば、
- 一部の開発者は、クラウドにいくつかのLinuxシステムを作成し、MySQL、Oracle、またはその他の関連データベースソフトウェアのみをインストールし、データベース操作のみを処理するデータベースLinuxサーバーになります。
- そして、一部の開発者は、Apacheまたは他のWebサーバー関連ソフトウェアをインストールしてWebサーバーにし、Web関連のタスクのみを実行し、どのような種類のデータベース操作も処理または受け入れることができないいくつかのLinuxシステムを作成します。
よろしくお願いします。
答え1
nmapを使用して、開いているポートでこれらのノードを検索できます。これらのサービスが標準のアプリケーションポートを使用している場合は、安定している必要があります。
nmapの使い方の簡単な例があります:
nmap -sS -O server.mydomain
...
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
111/tcp open rpcbind
514/tcp open shell
2301/tcp open compaqdiag
2381/tcp open compaq-https
...
関心のあるサービスで使用されるその他の例とポートについては、Googleをご覧ください。