【NetApp】プロンプト表示がおかしくなってしまった時の対処方法

2022年3月6日

netapp-prompt1

「途中まで入力したコマンドを間違って実行したら、その内容がプロンプトに表示されるんだけど!?」

「文字化け??」

こんにちは、キクです。

みなさんはNetAppを操作している時に、コマンド入力中に誤ってEnterキーを押してしまってプロンプトの表示がおかしくなってしまったことはありませんか?
例えばこんな感じ。

クラスタ名::storage>

何も知らずにいきなりこんな表示になったらプチパニックですよね。
というわけで、今回は『プロンプト表示がおかしくなってしまった時の対処方法』をテーマに書いていきたいと思います!
ちなみに本記事はかなりニッチな内容だと思いますが、知らずに遭遇すると「おや・・・?」となるかなと思ったので記事にしてみようと思いました(笑)

それでは、よろしくお願いします。

動作環境

本記事の内容は下記の環境で実施したものになります。
・ONTAP 9.8

注意事項

本記事は僕が経験した内容をもとに記載しておりますが、実行環境や設定などによって動作が異なる場合があります。
そのため『参考程度』にお読みいただけますと幸いです。

プロンプトの表示がおかしくなる原因

プロンプトの表示には次のようなものがありますよね。

■クラスタシェル

クラスタ名::>
クラスタ名::*>

ノードシェル

ノード名>

■システムシェル

ノード名%


そして本記事で扱うプロンプトの表示は冒頭でも触れた通り次のような状態になります。

クラスタ名::storage>

上記の中では「クラスタシェル」に該当します。
なお、記載のような「storage」以外にも「event」や「cluster」などのパターンもあります。

さて、どうしたらこのような状態になってしまうのでしょうか?
例えば「storage」のパターンであればコマンドラインで「storage」と入力した段階でEnterキーを押下したようなときに発生します。

クラスタ名::> storage

~Enterキーを押下~

クラスタ名::storage>

プロンプトに「storage」が追加されましたね。
先にお伝えしておくと、これは文字化けでもなんでもなく、正常な動作になります。

じゃあ一体何が起きているのか?

それは、単にstorageというディレクトリに移動しているだけなんですね。
Linuxにおいても「cd /tmp」などとするとプロンプトに「tmp」が表示されますよね?
まさにそれに近しい動作が起きているだけです。

ONTAPでコマンドを実行する時には「storage aggregate show」などのように一連のコマンドとして指定することが多いと思います。
この場合は次のような動作を一括で行っていることになります。

一般的なコマンド実行時の動作

1. storageディレクトリに移動
2.その配下のaggregateディレクトリに移動
3.その配下のshowというコマンドを実行

ディレクトリ移動という動作を理解した上で分解してみると非常にシンプルですよね!

ディレクトリ情報の確認方法

「ディレクトリに移動しているのは分かったけど、そもそも各ディレクトリは配下にはどんなディレクトリがあるの?」

全ディレクトリ情報を知っていれば困ることはありませんが、そんなのは現実的ではありませんよね。
普段よく使用するのはtabキーによる補完機能だと思います。
でも今回は「」を実行するという方法で確認していくことにします。

例えば、クラスタシェルにログインしただ直後のディレクトリ(=トップディレクトリ)で「?」を実行すると次のような結果が得られます。

クラスタ名::>
クラスタ名::> ?

cluster>  Manage clusters
event>   Manage system events
exit    Quit the CLI session
history   Show the history of commands for this CLI session

・・・中略・・・

storage>  Manage physicak storage, including disks, aggregates, and failover
system>   The system directory
top     Go to the top-level directory
up      Go up one directory
volume>   Manage virtual storage, including volumes, snapshots, and mirrors
vserver>  Manage vserver

上で登場したような「event」や「cluster」、「storage」などが表示されているのが分かると思います。
これらが現在のディレクトリから移動可能なディレクトリおよび実行可能なコマンドの情報になります。

同様に、storageディレクトリに移動した状態でも確認してみましょう。

クラスタ名::storage> ?

aggregate> Manage storage aggregates
array>    The array directory
bridge    (DEPRECATED) Storage bridge monitoring commands
disk>	   Manage physical disks

・・・以下略・・・

今度は「aggregate」や「disk」などの情報が表示されましたね。

これはstorageディレクトリ配下の情報となります。
「storage aggregate show」コマンドの「storage → aggregate」の順にディレクトリ階層を下っていっているのが分かるかと思います。

こんな感じでディレクトリ情報を確認していくことが可能です。

省略可能なパターンもある

ONTAPを使い始めて間もない頃、僕は「コマンドの省略実行」という動作に少し混乱したのを覚えています。
何を言っているかというと、次の2つのコマンドが同じ結果を表示するというようなことを指しています。

クラスタ名::> storage aggregate show
クラスタ名::> aggr show

慣れてしまえばなんてことないことです。

ただ、今回の記事内容に関して考えてみると僕はこの動作に対して次のような疑問を持ちました。
「トップディレクトリで「?」を実行したときには「aggr」なんて表示されなかったのになんで実行できるの?」

そこで試しにトップディレクトリで「aggr」でEnterキーを押下してみました。
すると、次のような結果が表示されました。

クラスタ名::> aggr
クラスタ名::storage aggregate>

プロンプトに「storage aggregate」と表示されているのが分かるかと思います。
これはつまり「aggr」だけの実行で「storage aggregate」ディレクトリに移動したということになりますね。

裏でどのようなことが行われているかを詳細にご説明することはできないのですが、感覚としては「aggr」が「storage aggregate」へのショートカットキーになっているのではないかと感じます。
もしそうであれば、「aggr」の実行だけで「storage aggregate」ディレクトリに移動する動作も自然なのかなと腑に落ちますよね。

ちなみに「aggregate」で実行するとエラーになりました。
あくまでも「aggr」がショートカットキーのような役割を担っていると考えられます。

ONTAPでは「aggr」に限らず、こういったコマンド実行方法がたくさん存在しています。
入力する文字数が減るので活用すればとても便利ですよね!

一方でNetAppのドキュメントセンターでコマンドを調べるときには「aggr show」ではなく「storage aggregate show」など正式な記載方法でないと見つからないので注意しましょう(笑)
ONTAP9 ドキュメントセンター

netapp-prompt2

プロンプトの表示がおかしくなった状態からの戻し方

長くなりましたが、プロンプトの表示がおかしくなった状態からの戻し方について見ていきましょう。
ここまで読んでいただいた方であれば、単にディレクトリが移動しているだけということをご理解いただけていると思います。
そして、ここから戻る方法は非常に簡単です。

Linuxで言えば「cd」コマンドを実行するイメージ。
説明のために、トップディレクトリで「?」を実行した際の結果を改めて見ていきましょう。

クラスタ名::>
クラスタ名::> ?

cluster>  Manage clusters
event>   Manage system events
exit    Quit the CLI session
history  Show the history of commands for this CLI session

・・・中略・・・

storage>  Manage physicak storage, including disks, aggregates, and failover
system>  The system directory
top     Go to the top-level directory
up     Go up one directory
volume>  Manage virtual storage, including volumes, snapshots, and mirrors
vserver>  Manage vserver

この中の「top」「up」に注目してみましょう。

top :Go to the top-level directory
up :Go up one directory

どちらもディレクトリ階層が上がるコマンドであることが分かります。
つまり、これらのいずれかを実行すれば元のディレクトリに戻ることができるということです。

「top」が文字通りトップディレクトリまで移動してくれるので一番シンプルですかね。

クラスタ名::storage aggregate> top
クラスタ名::

ちなみに「..」と入力して実行すると「up」と同じ結果になるので覚えておきましょう。

おわりに

いかがだったでしょうか。

今回はONTAPのプロンプト表示がおかしくなる原因が「ディレクトリ移動」であることや、その戻し方について見てきました。
僕は初めてこの現象に遭遇したときには「何事!?」となってしまいました(笑)

ただ、何が起きているのかを理解してしまえばなんてことないなーと感じますよね。
同じ現象でびっくりしてしまった方に本記事が少しでもお役に立てていれば嬉しいです!

最後までお読みいただき、ありがとうございました。
ではでは!

-NetApp
-