職場では、Amazon EC2インスタンスでホストされているUbuntuサーバーを使用して小さなWebサイトを開発しています。私たちは2つのWebサーバーを持っています。一つは「ライブ」、もう一つは「テスト」です。ただし、「テスト」サーバーで新機能やバグ修正を実行すると、AWS APIを使用してIPを交換するスクリプトが実行されます。両方のサーバーが提供するドメインを交換するために2つのボックスに割り当てられたアドレス。
したがって、いつでもこれらのサーバーの1つは「ライブ」サーバーまたは「テスト」サーバーになりますが、永続的な状態ではありません。
2つのサーバーにSSHを接続するときの混乱を避けるために、特に私のような愚かな人が長い間SSHセッションを開いてどのサーバーにいるかを混同する場合は、両方のサーバーのホスト名を変更してプロンプトが表示されるようにしたいと思います。ターミナルウィンドウのタイトルは、読み取られるか、ubuntu@ourwebsiteLIVE
サーバーubuntu@ourwebsiteTESTING
が現在アクティブかテスト中かによって異なります。
私はhostname ourwebsiteLIVE
IP交換スクリプトでetcを実行してこれを行うことができることを知っており、すでにこれを達成しています。これは機能しますが、sudo
サーバーから何でも印刷するたびに、次のように印刷されます。
sudo:ourwebsiteLIVEホストを確認できません。
これは何も壊さないようですが、とても迷惑です。パイプから出力されたコマンドを接続しようとすると、後で問題が発生する可能性があると思うので、これは技術的に単純な外観上の問題以上だと思います。
私が見た「ホスト名を解決できません」というメッセージに対するすべての回避策には、修正/etc/hosts
または類似のファイルが含まれます。その後、サーバーを再起動します。。多くのユースケースではこれが問題ないことがわかりますが、定期的にホスト名をプログラム的に変更するため、スワップスクリプトを実行するたびに再起動を待つ必要がないため、理想的ではありません。
再起動せずにエラーメッセージを消去する方法はありますか?
ベストアンサー1
使用することをお勧めしますnss-myhostname。常に現在のホスト名を解決するnssプラグインなので、変更は不要です/etc/hosts
。
説明した問題は解決者の問題であるため、正しいDNS設定で問題を解決できます。つまり、ourwebsiteLIVE.$DOMAIN
コンピュータのIPを解決するだけです。