それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

script コマンドで作業内容をリモートで伝える

script コマンドで作業内容をリモートで伝える

screen コマンドの共有でも出来るけどね。script コマンドだけでも出来るよね。

screen の共有とかと同じです。

見せたい側で

script -f -a sample.log

みたい側で

tail -F sample.log

としておけばずっと見てられる。ファイルなので、パーミッションさえあってれば見られる。

tty / pty を共有先に指定したらもっと便利になると思う。

参考資料

GNU script と BSD script はコマンドのオプションが異なるので注意が必要

gnu script

名前
     script — 端末セッションの写し (typescript) を作成する。

書式
     script [-a] [-c COMMAND] [-f] [-q] [-t] [file]

説明
     script は端末に表示されたものすべての写し (typescript) を作成する。 これは宿題を出された学生が、インタラクティブ
     なセッションの ハードコピーを必要とする場合などに便利だろう。 記録された typescript ファイルを、後で lpr(1) など
     を使って印刷すれば良い。

     引き数 file が指定されると、 script はすべての記録を file に保存する。ファイル名が与えられなければ、写しは
     typescript というファイルに保存される。

     オプション:

     -a      出力を file または typescript に追加 (append) する。 以前の内容が保存される。

     -c COMMAND
             インタラクティブなシェルではなく、COMMAND を実行する。 標準出力が端末 (tty) でないと動作が変わってしまう
             プログラムの出力を、 script が簡単に記録できるようにする。

     -f      書き込みをするごとに出力をフラッシュする。 これは遠隔で共同作業をする場合に良い。 一方の人が `mkfifo
             foo; script -f foo' を実行した場合、 もう一方の人は、`cat foo' を使うことにより、 何が実行されているかを
             リアルタイムで監視することができる。

     -q      寡黙な動作にする。

     -t      タイミングデータを標準エラーに出力する。 このデータはスペースで区切られた 2 つのフィールドからなる。 1
             番目のフィールドは、前の出力からの経過時間を表す。 2 番目のフィールドは、そのときに何文字出力されたかを
             表す。 この情報は、タイピングと出力の実際の遅延時間で、写しを再現するために使われる。

     script は fork されたシェルが終了したときに記録を終える (Bourne シェル (sh(1)) を終わるには control-D を入力す
     る。 C シェル (csh(1)) なら exit, logout, control-d のいずれかを入力する。 ただし control-d が有効なのは
     ignoreeof がセットされていない場合である)。

     vi(1) のようなインタラクティブなコマンドでは、 typescript ファイルにゴミができることがある。 script は画面を操作
     しないコマンドを扱ったときに最もうまく動作する。 その場合の結果は、ハードコピー端末をエミュレートしたものとな
     る。

環境変数
     script は以下の環境変数を用いる。

     SHELL  環境変数 SHELL が定義されていると、 script が fork するシェルはそれになる。 SHELL が定義されていなけれ
            ば、 Bourne シェルが用いられる。 (ほとんどのシェルはこの環境変数を自動的にセットする。)

関連項目
     csh(1) (history メカニズムに関する部分), scriptreplay(1).

履歴
     script コマンドは 3.0BSD で登場した。

バグ
     script はラインフィードやバックスペースも含め、 すべて をログファイルに書きこむ。 これは普通のユーザが期待するも
     のとは異なるかもしれない。