ある端末の出力を別の端末に接続するには?

ある端末の出力を別の端末に接続するには?

仮想端末で現在実行されている端末(tty1)の出力に接続し、それをキャプチャする必要があります(Xサーバーの実行)。

答え1

私はPerlというプログラムを見つけましたttylog。これはCPANで利用可能なPerlプログラムです。ここ。これにはいくつかの注意点があります。そのうちの1つは、誰かが私のボックスにSSHで接続するプロセスの一部として生成された端末に接続する方法だけを見つけることができるということです。もう 1 つの方法は、高い権限 (ルートや sudo など) で実行する必要があることです。

しかし、動作します!

例えば

まず、用語1のボックスにSSHを介して接続します。

TERM#1% ssh saml@grinchy

この新しい端末のttyを確認してください。

TERM#1% tty
/dev/pts/3

次に、別の端末(TERM#2)で次のコマンドを実行します。

TERM#2% ttylog pts/3
DEBUG: Scanning for psuedo terminal pts/3
DEBUG: Psuedo terminal [pts/3] found.
DEBUG: Found parent sshd pid [13789] for user [saml]

これで、用語#1に戻って何かを入力すると、用語#2に表示されます。

端末数

私が試したすべてのコマンド(top、lsなど)が機能しますttylog

答え2

報告:

man 1 script

たとえば、

script -f /dev/tty1

源泉

答え3

それは。 /dev/vcs* および /dev/vcsa* デバイスは、/dev/tty* デバイス (仮想端末) に対応します。 F1=tty1=vcs1/vcsa1 などです。 vcs/vcsa は、「現在」仮想端末の tty と同じです。

ルートとしてスナップショットを撮るように、これらのデバイス(cat / dev / vcs2など)を分類し、そのVT(F2の/ dev / tty2など)にコンテンツを表示できます。 vcsa* には端末 (画面) サイズに関する情報が含まれている点で vcs* とは異なります。これは、端末に割り当てられたメモリから収集された画面に表示される文字の生のスナップショットなので、見やすく解析しやすい出力を期待しないでください。

欠点は、情報が早すぎると捕捉するのが難しいことです。複数の画面に従う必要がある場合(直接試したことはありません)、tail -f /dev/vcs1は機能しますか?まず、ファイルにリダイレクトするのが最も簡単です。端末のサイズが同じなので、VT(F1-F6)を見るのも良い方法です。私の経験では、vcsa *デバイスではなくvcs *を使用する方が良いです。

それでも機能しない場合は、管理者が端末のアクティビティを監視できる「ビッグブラザー」パッケージの1つを使用できます。

PS:どのオペレーティングシステムを使用しているのか尋ねることを忘れました。これはLinux用ですが、他のオペレーティングシステムにも同様のデバイスがある可能性があります。デバイスのマニュアルページで「仮想コンソールメモリ」を検索してみてください。

答え4

これは私にとって効果的です。

  • コンピュータ「A」(つまり、制御したい物理コンピュータ)のキーボードを使用して、次を実行します。screen -q

  • コンピュータ「B」からsshコンピュータ「A」に接続します。

  • SSHセッションで、次のように入力します。screen -ls接続するセッションIDを取得する(次を含む行の4桁の数字)端末)。

  • 次のコマンドを使用して上記のセッションに接続します。screen -x <session id>...上記のコマンドで受信したセッションID番号を使用してくださいscreen -ls

「セッション」のいずれかを入力すると両方の「セッション」で発生するため、たとえば、入力すると両方のセッションがscreen -d終了します。

関連情報