雑多なインフラエンジニア日記

技術ブログでっす~

route53コマンドの結果をIPアドレスでsort


route53コマンドから、EC2インスタンスIPアドレス一覧を取得して、
IPアドレスでsortするのに困ったので、メモ。
(AWSというか、Linuxの話ですね。。)

sort -n でいけると思ったのですが、10.0.0.10 が先頭に表示されてしまいます。
(以下、ドメインIDは route53 ls で表示された値)

[root@server01 ~]# route53 get ドメインID | awk '$2~/^A$/ {print $4}' | sort -n
10.0.0.10
10.0.0.4
10.0.0.5
10.0.0.6
10.0.1.4
10.0.1.5
10.0.2.4
10.0.2.5
[root@server01 ~]#


sortのオプションを sort -t. -k1,1n -k2,2n -k3,3n -k4,4n にすれば、IPアドレスの昇順でsortされます。

[root@server01 ~]# route53 get ドメインID | awk '$2~/^A$/ {print $4}'| sort -t. -k1,1n -k2,2n -k3,3n -k4,4n
10.0.0.4
10.0.0.5
10.0.0.6
10.0.0.10
10.0.1.4
10.0.1.5
10.0.2.4
10.0.2.5
[root@server01 ~]#



IPアドレス一覧、hosts、psshのリストファイルを作る際に便利かと思います。
(今回はhost名を省いてますが、awk で調整すれば取得出来ます。)

・補足


route53コマンドを使うには、boto (Python用ライブラリ)が必要です。

http://shanon-tech.blogspot.jp/2011/02/amazon-web-service-botoec2.html

boto導入後、ユーザホームディレクトリに、.boto ファイルを以下のように作成
する必要があります。

[Credentials]
aws_access_key_id = XXXXXXXXXXXXXX
aws_secret_access_key = XXXXXXXXXXXXXX


設定するアクセスキーなどについては、以下を参照願います。

http://xoxo-infra.hatenablog.com/entry/2013/02/08/013002

以上です。