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
以上です。