表題ではいまいち伝わらない気もするが…。単なるメモである。
■ 環境
- 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
$
満足である。
以上。