AIX接続でプロンプトに#以外を表示させるとTeraTermログの表示がおかしくなる
詳細な状況を確認したいので、バイナリログか TTY Record で記録したログを添付してもらえませんでしょうか?
可能ならば TTY Record の方がありがたいです。TTY Record はフルインストールで入ります。
doda への返信
詳細な状況を確認したいので、バイナリログか TTY Record で記録したログを添付してもらえませんでしょうか?
ご返信ありがとうございます。 添付ファイルとして、YYT Recordとその際に取得したログファイルを登録しました。 よろしくお願い致します。
ログを確認したところ、AIX側が同じ場所に重ね打ちするような形で出力を繰り返していますね。 内容的には #13868 と同じ問題です。
Tera Term側としては送られてきた内容をそのまま記録するので、現在のような出力になります。
現在のところ、これを避ける事は出来ません。 対応するとなると一度出力したログの内容を書き換えたり消したりする必要が出てきますが、 出力の内容によっては必要な部分が記録されていないという事も有りえますので、このような ログに意味が有るのかという話にも繋がってきます。
一応、このような出力でも整った形になるようなログ形式も検討はしていますが、実際に実装されるかは未定です。
調査ありがとうございます。 原因がAIXの重ね打ちしている動きとは残念です。
TeraTermは、ログ内部へのタイムスタンプ機能やログファイルに日時やホスト名を表記できるところが気に入って、 Poderosaは却下と思っていたのですが、再検討する必要がありそうです。 本問題はPoderosaでは発生しないので(それが正しいことなのかどうかは別として) そちらはログを条件付きで修正して記録しているのかもしれませんね。
ログが汚くなるなら納得もできるのですが、操作していないことなので、 ユーザー視点だと納得性が低いように感じました。
本件、原因と言える設定が判明しましたのでお知らせしておきます。
あれから本事象が発生したAIX以外のAIXへアクセスする機会があり、本事象の再発について確認したところ、
発生しないことが確認され、設定によるのか、と調査したところ、事象発生サーバ-のAIXの .profile には
以下のように「set -o emacs」が記述されていました。
※exportの部分はプロンプト部分にホスト名などを表示するための記述。
export PS1=`hostname`:['$PWD']#" " set -o emacs
事象が発生しないサーバーとの比較で、setコマンドが異なることがわかり、試しに
setコマンドをコメントアウトしたところ事象が発生しなくなりました。
setコマンドによってシーケンスがどのようになるかまでは調査してませんが、
原因と言えると考えます。
このように、.profileにsetコマンドを仕込むのは、決してイレギュラーなことではなく、
利便性を考慮してよく行うことのようです。
また、.profileにsetコマンドを仕込まなくても、作業中に同様のコマンドを
発行することで、事象が発生することがわかりました。
これはよく行うことなので、ログが汚くなってしまうのは回避不可能となります。
上記の事から、作業の利便性を考慮してsetコマンドを実行すると
シーケンスが重ね打ちのようなデータをターミナルに送信し、素直にログに表示する
TeraTermはコントロール文字も含めてそのまんま表示する、ということです。
TeraTermは素直にログを記録することは理解しましたが、利便性という意味では
使用に耐えないという印象を受けました。
なお、Poderosaの評価も進めており選択に戸惑っていますが、
TeraTermにPoderosaのようなテキストモードの作業ログ記録が
選択できれば、TeraTermの優位性が高くなると考えます。
(Poderosaはコントロール文字を含めたログが欲しいならバイナリーで取れるので便利)
ここまでサポートリクエストではなく、機能追加要望ですが、
ビジネスツールとしてのTeraTermに成長するように節に願う次第です。
バイナリログをVTに再生するかわりに、別ファイルに書き出すツールって作れないでしょうか。
前のコメントでも書きましたが、今回のような出力でも綺麗なように見えるログ形式は以前から検討はしています。
ただ、これも前に書きましたが、そのようなログ形式では記録されない部分がありますので、ログとして必要な部分が記録されない可能性があります。
例えば、ksh で set -o emacs や set -o gmacs をした時に、コマンドラインでの一行の長さが長くなると先頭部分が隠れてしまい、どのようなコマンドを入力したか判らなくなってしまいます。
この為、このようなログ形式は業務での使用には耐えないと思っています。
必要な部分が記録されない場合が有るという事を理解して使う分にはこのようなログ形式が有ってもいいとは思いますが、その事を理解せずに使う人が出たりして混乱が起きそうなので、個人的にはあまり気が進まないでいます。
# 余計な出力が有った場合に必要ない部分を削るのは簡単ですが、記録されなかった部分を復元するのは難しいですし
バイナリログをVTに再生するかわりに、別ファイルに書き出すツールって作れないでしょうか。
私の知っている範囲では、termlog というのが有ります。
これを TTX 化した物があったら便利だろうなと考えてはいるのですが、まったく手が付いていない状態です。
前のコメントでも書きましたが、今回のような出力でも綺麗なように見えるログ形式は以前から検討はしています。 ただ、これも前に書きましたが、そのようなログ形式では記録されない部分がありますので、ログとして必要な部分が記録されない可能性があります。
例えば、ksh で set -o emacs や set -o gmacs をした時に、コマンドラインでの一行の長さが長くなると先頭部分が隠れてしまい、どのようなコマンドを入力したか判らなくなってしまいます。
それは確かに致命的というかかなり問題ですね。 前に書いてらしたのはそういう意味だったのですね。
この為、このようなログ形式は業務での使用には耐えないと思っています。
それは使用に耐えないどころのレベルではないですね。 Poderosaが隠れてしまう部分をログに残さない仕様であるとすると、確かに考えものです。確認しておきます。
気が進まない理由は理解しました。ありがとうございました。
1.問題点
接続先のAIXでプロンプトに#以外を表示させる設定になっているAIXに接続した際に、ログの表示がおかしくなります。
以下、(1)のように操作を行うとログ上では(2)のようにプロンプト部分(例では「p5p520:/#」)やコマンド表示が繰り返し記録されてしまいました。 なお、AIXのデフォルトではプロンプト部分は#のみ(あるいは$のみ)になるが、その場合同事象は発生しませんでした。
また、タイムスタンプ機能をOFFにしても、本事象は発生しました。送受信改行コードをデフォルトのCRからCR+LFやLFに変更しても変化なしでした。
(1)操作画面
(2)ログ内容
2.環境
TeraTermバージョン:4.65
TeraTerm実行OS:Windows XP、Windwows2003
接続先OS:AIX 5.3、6.1
TERATERM.INIの以下の項目はデフォルトから変更しています。
LogDefaultName=%Y%m%d_%H%M%S_&h_teraterm.log
LogDefaultPath=.\teratermlog
LogAutoStart=on
LogTimestamp=on
これがTeraTermの問題かどうか判断するのが当方の所持している環境では難しいのですが、回避策だけでもあればご教示いただきたく思っております。
よろしくお願いします。