vCSAでsnmp.get: command not foundというエラーの対処法

vCenter Server Appliance (vCSA)で,GUIからSNMPの設定をしてもデータを取得できない場合があります。

その場合,SSHでvCSAにログインしてSNMPの設定を行う必要があるのですが,例えば,snmp.getコマンドなどを叩いてみても,コマンドが見つからないというエラーが出てしまう場合があります。

snmp.get: command not found
snmp.get: command not foundというエラーが出てしまう。

snmp.get: command not foundというエラーが出てしまう。

この場合,何が間違っているのでしょうか。

vCSAには2種類のShellモードが存在する

現在,vCSAは2種類のShellをバンドルしており,どちらのShellを使っているのかを意識する必要があります。

・BASH Shell
・Appliance Shell

もしかすると,これまではAppliance Shellがデフォルトになっており,そこからBASH Shellに移動するために,Shellとタイプして操作していたかもしれません。

しかし,vCSAをアップグレードしたタイミングなどで,BASH Shellがデフォルトになってしまっている場合があります。

このような場合,ログインしてsnmp.getコマンドなどを走らせてみても,上述のsnmp.get: command not foundなどというエラーが出てしまいます。

では,Appliance Shellにスイッチするためにはどうしたらよいでしょうか。

vCSAでAppliance Shellにスイッチする方法

SSHでvCSAにroot権限でログインし,以下のコマンドを走らせます。

chsh -s /bin/appliancesh root

そして,exitでログアウトしましょう。次回接続時から設定が反映されますので,一度ログアウトするのがポイントです。

すると,見慣れたCommand>というプロンプトが現れますので,この状態でSNMP関連のコマンドなどを流してみましょう。そうすると,期待通りに応答するはずです。

BASH Shellをデフォルトにして操作したい場合には,同様に以下のコマンドで戻すことができます。

chsh -s /bin/bash root

以上,vCSAでcommand not foundというエラーが出てしまう場合には,Appliance Shellにスイッチして操作する必要があるというお話でした。

コメント