SSHログイン後すぐにホスト名変数を設定する

SSHログイン後すぐにホスト名変数を設定する

リモートホストに接続し、いくつかのデーモンプロセス(存在する場合はhadoop)を起動する一連の(サードパーティ)シェルスクリプトがあります。このスクリプトは、pidフォルダ、データディレクトリなどを構成するためにホスト名に大きく依存します。

今やるべきことは、Archを使用してスタンドアロンコンピュータでテスト/開発環境を作成することです。これは次のことを意味します。

  • 127.0.0.1でdata1、data2、data3などのエイリアスを提供するように/ etc / hostsを設定します(これはマイナーな部分です)。
  • localhostへのパスワードなしのSSHアクセスの設定(これも簡単です)
  • どういうわけか「ssh data1」を使用して接続したように、現在のSSHセッションのホスト名を設定します。その後、ホスト名は「data1」でなければなりません。把握できません。

したがって、2つの問題を解決する必要があります。

  • 一部の環境変数またはリモートホストに似たものを渡して、リモートホスト上のすべてのスクリプトに表示されるようにするにはどうすればよいですか。
  • そのセッションのリモートホストにのみホスト名を設定する方法

そして、これはすべて同じコンピュータで行われます。

ベストアンサー1

システムのホスト名は、一般的な使用のためにプログラム的に設定することはできず、これを効果的に変更できる環境変数もありません。

たとえば、変数が表示される場合がありますが、$HOSTNAMEこれは一般に便宜上のものであり、意味のある方法でシステムのホスト名を変更しません。

私があなたの場合は、私が選択した環境変数を選択してログイン時にユーザー環境の一部に設定し、システムホスト名の実際の環境変数で作業するのではなく、スクリプトでその変数下流を使用します。 。

ホスト名コマンド

次のコマンドを実行して、許容される方法でシステム名を変更できます。

$ sudo hostname <somename>

ただし、ホスト名はしばしば複数の場所に保存され、一部は起動時に一度だけ読み取られ、再び読み込まれないため、このアプローチは難しいかもしれません。

これを考えると、これは困難で長くて簡単な方法でシステムのホスト名を無視するために多くのハッキングとスラッシングが必要であることがわかりました。

このタスクを実行しようとしたときに発生する可能性があるいくつかの問題を示すこのガイドを残します。タイトルは次のとおりです。Linuxシステムのホスト名を変更する方法

おすすめ記事