2017-06-05 16 views
0

Linuxシェルスクリプトでは、一時的にDNSアドレスを変更したいと思います。 これを行うには、シェルを実行した直後にtemprary DNSアドレスをresolv.confに挿入し、スクリプトが終了する前に削除します。それでおしまい。Linuxシェル一時DNS

しかし、問題は、スクリプトが実行されている間は他のすべてのスクリプトもアドレスに衝突することです。 これは私が期待したものではありません。 他の方法に影響を与えずにシェルで一時的にDNSを変更できる別の方法はありませんか?

+0

スタックオーバーフローは、プログラミングおよび開発の質問のサイトです。この質問は、プログラミングや開発に関するものではないので、話題にはならないようです。ヘルプセンターの[ここではどのトピックを参照できますか](http://stackoverflow.com/help/on-topic)を参照してください。おそらく、[Super User](http://superuser.com/)や[Unix&Linux Stack Exchange](http://unix.stackexchange.com/)の方が良いかもしれません。 [Dev Opsについての質問はどこに投稿しますか?](http://meta.stackexchange.com/q/134306)も参照してください。 – jww

答えて

1

あなたを助けることができます。親から共有されていないいくつかの名前空間でプログラムを実行するのに役立ちます。 unshareを使用すると、スクリプトセッションに限定されたカスタムresolv.confを使用できるようになります&は、他のシステムユーザとクエリには影響しません。

sudo unshare --mount bash -s <<'EOF' 
    mount --bind custom_resolv.conf /etc/resolv.conf 
    sudo -u username run_command 
    EOF 
関連する問題