ssh ip address show

表題ではいまいち伝わらない気もするが…。単なるメモである。

■ 環境

  • Linux
  • Mac OSX El Capitan

■ ssh ${HOST} ip address show

スクリプトの中で、複数のホストにSSH接続し、`ip address show`の結果を確認して表示を変えたい。当初、単に下記のように実装したらエラーであった。

$ ssh ${HOST} ip a
bash: ip: command not found
$

実際にSSH接続でログイン後に同じコマンドを実行したところ、正常に結果を得られるのは確認している。

$ ssh ${HOST}
[ec2-user@withsin ~]$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 06:fa:1f:80:b8:9b brd ff:ff:ff:ff:ff:ff
    inet 192.168.33.11/24 brd 10.1.1.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::4fa:1fff:fe80:b89b/64 scope link
       valid_lft forever preferred_lft forever
[ec2-user@withsint ~]$

さてどういうことかと思ったが、思い当たることをいくつか実施したところ”PATH“の問題であった。下記のように実行することで思い通りの結果を得られた。

$ ssh ${HOST} /sbin/ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 06:fa:1f:80:b8:9b brd ff:ff:ff:ff:ff:ff
    inet 192.168.33.11/24 brd 10.1.1.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::4fa:1fff:fe80:b89b/64 scope link
       valid_lft forever preferred_lft forever
$

満足である。

以上。