ホスト名の取得方法はいくつかあるようです。
下記で簡単に取得できます。
ホスト名はどこからとってるのかなと調べてたら
こんなpythonの実行もあるのか!
python 実行する時に -c でスクリプトを実行できるんですね。
これは便利かも。
[root@hermes ~]# python -c 'import socket; print socket.getfqdn()'
localhost.localdomain
[root@hermes ~]# python -c 'import socket; print socket.gethostname()'
ansible.tld
結局どこを取ってるかはわかってない。。。
ーーー
(追記)
調査してみた
hostnameコマンドでホスト名変えても echo $HOSTNAMEや、
/etc/sysconfig/networkのHOSTNAMEも変わっていなかったので
どうやら「内部的なhostname」を持っていてこれが優先されるようだ。
gistにも書いたけど、/etc/hostsのホスト名はドットが入ってないと
ホスト名として取ってこないってのは知らなかったなあ。
※/etc/hosts は service network reload とかしなくても変更がそのまま反映されたから
getfqdn()は直接/etc/hostsを読みに行ってるみたいね。
あと検証する上でできなかったこととして、
検証は会社のawsで(こっそり)やったんだけど
/etc/sysconfig/networkのHOSTNAMEを変更しても、再起動する際に元に戻って
起動してしまうのでここの影響はわからなかった。
あと疑問なんだけど/etc/hostsのホスト名を変えていくと
なんか変な文字(連続?アンダーバー?)を入れると、ホスト名もlocalhost.localdomainも
取ってくるのをやめてgethostname()でホスト名を取ってきているようだった。
その条件がなんなのかしつこいくらいやりなおしてみても
条件がわからなかった。
これがけっこう心残り。
文字数?連続文字?
うーんなんだろな
わかんね
エキスパートPythonプログラミング 改訂2版 (アスキードワンゴ)
- 作者: Michal Jaworski,TarekZiade,稲田直哉,芝田将,渋川よしき,清水川貴之,森本哲也
- 出版社/メーカー: ドワンゴ
- 発売日: 2018/02/26
- メディア: Kindle版
- この商品を含むブログを見る