ssh
sshをで生成することで自動的にログに記録するperlスクリプトがありますExpect.pm
。
それは実際にはかなりうまく機能し、ここに私の出力があります:
$ ngh bestServerEver
GPG Pass :
root@**********'s password:
Linux **** 2.6.32-042stab059.7 #1 SMP Tue Jul 24 19:12:01 MSK 2012 x86_64 GNU/Linux
motd!!!!!!!!!!
Last login: Mon Feb 4 22:18:10 2013 from *******************
bash
[root@******:~]$ bash
[root@******:~]$
コマンドを入力した直後にサーバーシェルに到達するように、この出力を抑制しようとしています。そのように:
$ngh BestServerEver
root@server#
私はその答えを試しました: Perlプログラムで一時的にSTDOUTを抑制するにはどうすればよいですか?
私も試しました:
local (*OUT, *ERR);
open OUT, ">&STDOUT";
open ERR, ">&STDERR";
close STDOUT;
close STDERR;
print "don't print";
open STDOUT, ">&OUT";
open STDERR, ">&ERR";
標準のSTDOUTの場合はどちらも問題ありませんが、Expectは別の種類のハンドルなどのようです。
私も設定してみました:
$exp->stty("-echo");
しかし、それは何も隠しませんでした
最後に、私のコードhttp://pastebin.com/pSL3AwBWがあります。そのジャンクを非表示にする方法について、いくつかのヒントがあります。